微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

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

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

解决方法

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

原文地址:https://www.jb51.cc/ajax/240738.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐