【发布时间】:2018-09-07 04:53:08
【问题描述】:
我有一个处理 HTTP 发布请求的后端服务器 (nodejs)。 POST 请求用于向后端发送 JSON 数据并返回纯文本。
问题出在我的带有 JQuery 的客户端 JS 上。当我对该 POST 请求调用 ajax 函数时,JSON 数据已正确发送到后端,但请求(可以,res status=200)不会触发成功事件。
console.log(JSON.stringify(gen_report_info));
$.ajax({
type: "POST",
url: "api/getReport",
data: JSON.stringify(gen_report_info),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data);
$("#progress").append(data);
},
failure: function (errMsg) {
console.log(errMsg);
}
});
答案标题下方:
Connection →Keep-Alive
Status →200 OK
Content-Length →832
Content-Type →text/plain; charset=utf-8
Date →Wed, 28 Mar 2018 13:15:14 GMT
ETag →W/"340-gxxXGSzjzUm41Z82ZlguHspl9nk"
Keep-Alive →timeout=15, max=100
X-Powered-By →Express
X-RSP-Enclose →none
如果我使用“完成”事件而不是成功,它会起作用 但我想了解为什么不触发成功事件
【问题讨论】:
-
您能否显示您从 ajax 调用中获得的 json 响应。服务端发送的响应不是json格式的,所以这可能是没有调用成功函数的原因
-
尝试使用
error:而不是`失败:` -
您能否显示您从 ajax 调用中获得的 json 响应。服务器发送的响应不是json格式的,所以这可能是不调用success函数的原因。您可以从 ajax 中删除
dataType: "json",行并在成功功能启动后立即添加data = JSON.parse(data) -
其实服务器回答的是纯文本而不是JSON字符串
标签: jquery