Jquery:未触发Ajax POST请求/成功事件

时间:2018-03-28 13:15:01

标签: jquery

我有一个处理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

如果我使用"完成"事件而不是成功它的工作原理 但我想了解成功事件未被解雇的原因

2 个答案:

答案 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电话。