有谁知道为什么同步 ajax 调用会失败并在 iPad 上的 Safari 上给出以下错误,但相同的代码在我迄今为止测试过的所有其他平台和浏览器上都可以正常工作?
NETWORK_ERR:XMLHttpRequest 异常 101:同步请求中发生网络错误。
该错误表明我正在尝试跨域请求,但我没有;请求的URL位于同一主机上,实际上它是一个相对URL。即使在简单的测试中,这在 iPad 上也会失败(并且适用于所有其他平台和浏览器,包括 Safari),因此我确信我已经排除了任何超时的可能性。
此外,如果异步发出相同的请求,则在 iPad 上可以完美运行;只有同步请求才会给出 101 异常。这让我疯狂!
还有一点细节:这只发生在我的生产服务器上。同步 ajax 调用实际上在我的开发服务器上运行良好。两台服务器都需要相同的客户端证书...所以我认为没有任何区别。我想不出这两台服务器之间有什么区别会产生影响。
任何对此问题的见解将不胜感激。谢谢!
事实证明,我们的开发系统和生产系统之间的主要区别在于证书要求。
事实证明,该问题是 iPad 版 Safari 上的 XMLHttpRequest.send() 处理受证书保护的域上的同步请求的方式存在问题。我无法解释该方法的内部原理,但不知何故它有问题并抛出 101 异常,并相信它(显然)是跨域请求。同样,在同一个受证书保护的服务器上异步发出的相同请求也可以正常工作。令人沮丧的案例,而且没有解决方案!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)