【问题标题】:jquery ajax issue - error even if status code is 200jquery ajax 问题 - 即使状态码为 200 也会出错
【发布时间】:2015-08-12 21:04:21
【问题描述】:

我正在尝试使用以下代码执行 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

您能否建议如何进一步排除/处理它以正确执行成功/错误功能。

【问题讨论】:

  • 使用console.log(xhr, ajaxOptions, thrownError) 获得更好的细节。

标签: javascript jquery ajax


【解决方案1】:

我相信 JSON 的 dataType 就是 json

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

【讨论】:

  • 谢谢!更改后,一切都按预期开始工作:)。
猜你喜欢
  • 2017-05-04
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 2014-05-31
  • 1970-01-01
  • 2011-07-29
  • 2015-04-22
  • 1970-01-01
相关资源
最近更新 更多