我有一个移动应用程序,它通过 SSL 向同一域中的另一个应用程序发出 ajax xmlHttpRequest 请求以对用户进行身份验证。此调用在 IOS 5 之前的 IOS 设备上失败,响应代码为零,我被告知它无法访问域。它在 IOS 5 和桌面浏览器上运行良好。此应用程序使用纯 javascript,没有 jquery 或类似的东西。
奇怪的是,我在同一个域上有另一个应用程序通过 ssl 进行类似的调用以进行身份验证,并且此调用在所有设备上都成功。唯一真正有趣的区别在于此应用程序使用 jquery.ajax() 进行调用。
通过 Charles ssl 代理调试我得到了同样的错误。所以,我直接转到 safari 地址栏中的 ajax url。然后有人警告我关于不可靠的 Charles 证书,并询问我是否愿意接受它。执行此操作后,ajax 调用始终有效......在所有设备上!然后,我关闭了 Charles 代理,再次开始收到失败的 ajax 调用。 :(
请有人可以就他们所知道的任何事情向我提供建议:
- IOS 5 和以前版本的 IOS 之间是否存在任何与 SSL 相关的差异,并且可能是造成这种情况的原因。
- jquery 在他们的 ajax 调用中做了什么可以使其在标准 xmlHttpRequest 不起作用时起作用?
提前致谢...
最佳答案
这原来是证书错误。问题是一些浏览器接受了无效的证书,而另一些则没有。令人沮丧,但修复证书解决了我的问题。
关于javascript - 为什么 Javascript Ajax 调用在 IOS 5 以外的 IOS 设备上通过 SSL 失败。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9395152/