获取带有 AJAX 错误的服务器响应?

Posted

技术标签:

【中文标题】获取带有 AJAX 错误的服务器响应?【英文标题】:Get server response with AJAX error? 【发布时间】:2013-10-24 15:54:36 【问题描述】:

对于不正确的 Ajax 操作,我将 HTTP 标头代码设置为 403 并发送以下响应:

"code":"403","status":"Forbidden","message":"You cannot do this"

但是,在处理我的错误时,我无法访问这些数据...是否可以从 jqXHR 访问“消息”数据?

类似 jqXHR.message 的东西?

非常感谢您的帮助...

编辑:

error: function (xhr) 
            $(".alert").html(xhr.responseText);
          ,

这会返回:

"code":"403","status":"Forbidden","message":"You cannot do this"

但是 xhr.responseText.message 没有返回任何内容...

编辑:此代码有效:

  error: function (xhr) 
    var jsonResponse = JSON.parse(xhr.responseText);
    $(".alert").html(jsonResponse.message);
  ,

【问题讨论】:

***.com/q/1637019/139010 虽然注意 cmets 关于使用 JSON.parse() 而不是 eval 应该是jsonResponse["message"],不是吗? 【参考方案1】:

你应该得到 jQuery 'error' 回调... http://api.jquery.com/jQuery.ajax/

 error: function(xhr, status, error) 
    alert(xhr.responseText);
 

(顺便说一句..你的代码?)

【讨论】:

我收到“未定义”作为警报消息

以上是关于获取带有 AJAX 错误的服务器响应?的主要内容,如果未能解决你的问题,请参考以下文章

带有错误回调函数的 Ajax 响应

如何正确获取响应 ajax?

如何修复“500 内部服务器错误”以响应 ajax 调用

CORS - 带有“授权”的 Ajax 或 XMLHttpRequest 类型 GET 获取错误 307

CORS - jQuery 获取 ajax 响应状态失败

Ajax