Flask,如何为ajax调用返回成功状态代码
在服务器端,我只是将json-as-dictionary打印到控制台
@app.route('/',methods=['GET','POST'])@login_required
def index():
if request.method == "POST":
print request.json.keys()
return "hello world"
现在,每当我通过ajax发出发布请求时,控制台都会打印出包含我所需内容的字典。
在客户端,我一直在尝试使用各种方法来基于成功的ajax调用执行一些jquery。我只是意识到这可能是服务器端的错误,即我没有发送任何请求标头来告诉jquery其ajax调用成功。
那么,如何将OK状态发送回给客户以告诉一切一切正常?
为了完整起见,这是我的客户端代码
$.ajax({ type: 'POST',
contentType: 'application/json',
data: JSON.stringify(myData),
dataType: 'json',
url: '/',
success: function () {
console.log("This is never getting printed!!")
}});
回答:
关于flask中的响应:
关于回应
视图函数的返回值将自动转换为您的响应对象。如果返回值为字符串,则将其转换为响应对象,并将该字符串作为响应主体,
200
OK状态码和
text/html
mimetype。Flask用于将返回值转换为响应对象的逻辑如下:
- 如果返回正确类型的响应对象,则直接从视图中返回它。
- 如果是字符串,则使用该数据和默认参数创建一个响应对象。
- 如果返回一个元组,则该元组中的项目可以提供额外的信息。这样的元组必须是形式,
(response, status,
或者headers)
(response,
其中至少一项必须在元组中。该headers)
status
值将覆盖状态代码,并且headers
可以是其他标头值的列表或字典。- 如果这些都不起作用,则Flask将假定返回值是有效的WSGI应用程序,并将其转换为响应对象。
因此,如果您返回文本字符串(如您所做的那样),则AJAX调用必须接收的状态代码为200
OK,并且成功回调必须正在执行。但是,我建议您返回JSON格式的响应,例如:
return json.dumps({'success':True}), 200, {'ContentType':'application/json'}
以上是 Flask,如何为ajax调用返回成功状态代码 的全部内容, 来源链接: utcz.com/qa/402053.html