将JavaScript变量发送回Flask可以通过使用AJAX(Asynchronous JavaScript and XML)进行异步请求来实现。以下是一个基本的示例:
var data = {
variable1: 'value1',
variable2: 'value2'
};
// 使用AJAX发送POST请求到Flask应用的路由
var xhr = new XMLHttpRequest();
xhr.open('POST', '/route', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// 请求成功后的处理代码
console.log(xhr.responseText);
}
};
xhr.send(JSON.stringify(data));
from flask import Flask, request
app = Flask(__name__)
@app.route('/route', methods=['POST'])
def route():
# 获取POST请求中的数据
data = request.get_json()
# 处理数据并返回响应
result = process_data(data)
return result
def process_data(data):
# 处理数据的业务逻辑
return 'Data processed successfully'
if __name__ == '__main__':
app.run()
在上述示例中,前端使用AJAX将包含JavaScript变量的数据对象以JSON格式发送到名为/route
的Flask路由。Flask应用通过request.get_json()
方法获取POST请求中的JSON数据,并将其传递给process_data
函数进行处理。处理后的结果可以作为响应返回给前端。
需要注意的是,示例中的路由路径和函数命名可以根据具体情况进行修改。另外,该示例假设前端和后端部署在同一域名下,避免跨域请求的问题。
关于Flask和AJAX的更多信息,可以参考以下腾讯云产品和官方文档链接:
领取专属 10元无门槛券
手把手带您无忧上云