【发布时间】:2014-11-22 15:45:53
【问题描述】:
在服务器端,我只是将 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!!")
}});
【问题讨论】:
-
您是否尝试过返回有效的 JSON 字符串而不是纯文本
hello world?您指定返回数据类型为 json,但 jquery 可能无法解码“hello world”,因此永远不会调用成功函数。 -
@PeterGibson 在 GET 请求中返回“hello world”。我没有在 POST 上返回任何内容。
-
@PeterGibson 这确实是问题所在。我放了一个
return 'OK',它现在可以工作了。如果您愿意,可以提交答案。 -
哦,对了,对不起 - 仍然没有返回值,Python 默认返回
None,这不是一个有效的 JSON 对象。尝试返回类似'{"hello": "world"}' -
好的太好了 :) 我现在看到
dataType可能是用于发布数据的。