我有一个处理HTTP post请求的后端服务器(nodejs)。 POST请求用于将JSON数据发送到后端,并返回纯文本。
问题出在我的客户端JS和JQuery上。当我将ajax函数调用到该POST请求时,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
如果我使用"完成"事件而不是成功它的工作原理 但我想了解成功事件未被解雇的原因
答案 0 :(得分:0)
你在这里犯了错误
contentType: "application/json; charset=utf-8"
和
data: JSON.stringify(gen_report_info),
试试这个
$.ajax({
type: "POST",
url: "api/getReport",
data: JSON.stringify(gen_report_info),
contentType: "application/text; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data);
$("#progress").append(data);
},
failure: function (errMsg) {
console.log(errMsg);
}
});
答案 1 :(得分:0)
结果可能不是JSON格式,所以当jQuery尝试解析它时,它会失败。 您可以通过错误捕获错误:回调函数。 您可以从服务器返回json格式的响应,也可以删除dataType:' JSON'来自你的AJAX电话。