jQuery ajax请求在控制台中成功,但未调用回调

时间:2018-11-10 10:40:49

标签: javascript jquery ajax

我有一个看起来像这样的jQuery POST请求:

$.ajax("/myurl",{
    data:{
        ...
    },
    mimeType:"application/json",
    dataType:"application/json",
    method:"POST",
    success:function(r){
        console.log("success");
    },
    error:function(r){
        console.log("error");
        console.log(r);
    }
});

我在chrome控制台中打开了XHR日志记录,它显示为XHR finished loading: POST http://localhost/myurl。但是,“错误”以及XHR对象也记录在我的控制台中:

error
{readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
XHR finished loading: POST "http://localhost/myurl"

为什么说XHR已完成加载,但同时出现错误?为什么还会出现错误?在服务器端,服务器接收请求并发送响应。

1 个答案:

答案 0 :(得分:1)

最可能的解释是服务器发送回的内容不是有效的JSON,因此尽管ajax成功,但解析JSON仍然失败。

您的dataType已关闭,但应具有以下值之一:"xml""json""script""html""json"。您也不需要(可能也不想)设置mimeType