AJAX 响应失败

Posted

技术标签:

【中文标题】AJAX 响应失败【英文标题】:AJAX response failure 【发布时间】:2015-09-02 08:41:32 【问题描述】:

当我们发出任何 AJAX 请求时,响应失败的不同可能性有哪些?我们如何在客户端进行验证? 是否纯粹基于“response.status” 我正在使用 DOJO 并看到我从服务器获得响应的地方,但 response.status 是“未定义”(dojo.xhrPost 响应)

更重要的是从后端/服务器端的技术上讲,我们是否必须明确地做/传递一些东西来指示客户端的响应失败,或者是自动处理的(假设后端是 Java)?

【问题讨论】:

【参考方案1】:

整个 HTTP 状态基于 HTTP 调用的状态。服务器端组件应该能够按预期发送正确的失败响应代码/HTTP 状态 4xx/5xx。这与服务器/客户端组件的类型无关。

但是,并不是所有的失败案例都需要抛出 5xx 或 4xx 状态。例如,您可以尝试添加一条新记录,如果记录已经存在,服务器仍然可以发送 200 OK 响应并给出消息说明 - 记录已可用。 p>

这完全取决于网络开发者的判断 :)

【讨论】:

Thx...但是您能否添加更多详细信息,说明需要从后端/Java 端明确执行哪些操作才能返回失败,或者这是自动执行的操作吗? 这取决于他们选择的 WebService 类型。在与 JAX-RS 规范一起使用的典型 REST 调用中,Java 服务器端组件应发送带有状态代码的“响应”对象。【参考方案2】:

您是否检查过开发人员工具的网络选项卡以找到与失败的 XHR 匹配的请求?它可能会告诉你更多。

如果状态未定义,我猜可能 XHR 已完全中止,或者连接或解析 DNS 等时出错。

【讨论】:

但就像我说的,我确实在响应中得到了一些带有值的属性

以上是关于AJAX 响应失败的主要内容,如果未能解决你的问题,请参考以下文章

确定ajax调用是不是由于不安全的响应或连接被拒绝而失败

ASP.NET MVC 2 - jquery ajax 响应失败

加载资源失败:服务器使用 laravel 8 / ajax 响应状态为 404(未找到)

通过 Chrome 开发者工具查看来自 Ajax 调用的 HTML 响应?

如何正确获取响应 ajax?

收到错误消息;加载资源失败:服务器响应状态为 500