从今天开始,我正在开发的网络应用程序中出现了一个非常奇怪的错误。我没有对代码做任何事情,但日复一日地出现了这个错误:
我向运行 MAMP PRO 的本地服务器执行 AJAX 请求(不是使用 jquery,而是使用普通 js)。在 Chrome 和 Firefox 中一切正常(在 Mac 上测试)。但在 safari 中请求总是抛出错误:加载资源失败:网络连接丢失
当我尝试手动加载请求的 url(不是通过 AJAX)时,一切正常。我还用一个测试了该请求设置超时时间并发现了一些有趣的事情:
当我在页面加载后直接执行请求(最多 60 毫秒)时,一切正常。之后,连接偶尔会丢失,直到 6000 毫秒,一切又恢复正常!非常奇怪的行为...我没有使用任何其他 setTimeouts,所以问题只能由 safari 引起。
我做错了什么还是这只是一个非常新的 Safari 错误?
在为我们的网络应用程序开发一项大型新功能时,我们也遇到了这个问题。我们使用来自 JS 客户端的 XHR 请求从 Amazon Linux 上托管的 Tomcat 服务器获取用户收藏夹。初始连接按预期工作正常。但是,第二个相同的请求失败,并在客户端 JS 控制台中显示“无法加载资源:网络连接丢失”。我怀疑 Safari 将第二个请求识别为第一个请求的错误重复。
我们当前对 Tomcat 使用的解决方法是有效禁用 KeepAlive 支持。不幸的是,这会影响所有连接,而不仅仅是桌面和/或移动设备上的 Safari。 Tomcat 的解决方案是在 ${CATALINA_HOME}/conf/server.xml 中的 HTTPS 连接器上设置一个参数...
maxKeepAliveRequests="1"
可能还有其他解决方案来限制仅对 Safari 连接造成损害。如果我发现它们,我会回来更新这篇文章。更好的创可贴是将结果缓存在我们的应用程序中并完全避免该问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)