jquery ajax问题 - 即使状态代码为200

时间:2015-08-12 21:04:22

标签: javascript jquery ajax

我正在尝试使用以下代码执行jQuery Ajax请求:

$.ajax({
    url: '<MY_URL>',
    type: 'POST',
    contentType: 'application/json;charset=UTF-8',
    data: JSON.stringify(data),
    dataType: 'application/json',
    success: getParsedData,
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status + ' ' + $.parseJSON(xhr.responseText['message']);
    },
    xhrFields: {
        withCredentials: true
    }
});  

我没有执行success变量中指定的函数,而是获取值为200的警报弹出窗口(这是有效请求)。

在浏览器的开发者工具中,我也可以看到:

  

远程地址:...
  请求网址:...
  请求方法:POST
  状态代码:200 OK

请告诉您如何进一步排除故障/处理它,以便正确执行成功/错误功能。

1 个答案:

答案 0 :(得分:5)

我相信JSON的dataType只是json

当数据与预期的数据不匹配时,jQuery也会触发错误处理程序。例如,将HTML或格式错误的JSON返回到期望JSON的AJAX请求也可以触发错误处理程序,即使响应状态是非错误状态。