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/htmlmimetype。Flask用于将返回值转换为响应对象的逻辑如下:

  1. 如果返回正确类型的响应对象,则直接从视图中返回它。
  2. 如果是字符串,则使用该数据和默认参数创建一个响应对象。
  3. 如果返回一个元组,则该元组中的项目可以提供额外的信息。这样的元组必须是形式,(response, status,

    headers)或者(response,

    headers)其中至少一项必须在元组中。该status值将覆盖状态代码,并且headers可以是其他标头值的列表或字典。

  4. 如果这些都不起作用,则Flask将假定返回值是有效的WSGI应用程序,并将其转换为响应对象。

因此,如果您返回文本字符串(如您所做的那样),则AJAX调用必须接收的状态代码为200

OK,并且成功回调必须正在执行。但是,我建议您返回JSON格式的响应,例如:

return json.dumps({'success':True}), 200, {'ContentType':'application/json'}

以上是 Flask,如何为ajax调用返回成功状态代码 的全部内容, 来源链接: utcz.com/qa/402053.html

回到顶部