javascript – 如何在服务器没有响应时处理ajax调用

我有一个ajax调用一些数据(使用jQuery).在用户点击“提交”(并且已发送ajax调用)之后,我显示“请等待…”消息,该消息在请求返回之前禁用所有内容(因此用户不会双击或单击其他内容并使其混乱事情).

当出现任何错误时它会很好 – “请稍候……”消失,我正在向用户显示出错的地方.

但是如果服务器由于通信错误而没有返回任何东西会发生什么?

我找到的解决方案是为“请稍候……”消息设置超时10秒,在此之后它消失并显示错误“通信失败”.我假设如果服务器在10秒后没有响应,那么它根本不会响应 – 但这是错误的假设.

问题是 – 如何在20秒后确定服务器不会返回某些内容?可能发生的情况是用户点击提交 – > 10秒后,他收到一条错误消息 – > 5秒后服务器响应并使用户感到困惑

如何确保在隐藏“请稍候……”消息后,服务器中是否会弹出任何内容

解决方法

当您向服务器发送请求时.除非服务器响应,否则打开连接并保持打开状态.
1.如果由于服务器端的某些错误而无法响应,那么一般会发回5xx的响应代码(503)
2.如果由于某些连接问题,连接过早终止,那么 jquery也会将其视为错误. 1.如果你想等待服务器发送请求或连接终止(之前发生过),那么你可以使用jquery ajax中的完成选项. 2.如果您处于服务器即使在20秒后没有响应的情况,并且您认为它应该已经响应,请立即使用超时. 3.最终如果你的问题是你正在使用一些定制的(手工制作的http服务器),即使它遇到一些错误也会终止请求然后至少定制它enuf以便它发回一些响应代码(因为这是HTTP请求和响应模型)

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...