Ajax 无法在 IE 错误代码 12019 上使用 SSL
Posted
技术标签:
【中文标题】Ajax 无法在 IE 错误代码 12019 上使用 SSL【英文标题】:Ajax not working with SSL on IE error code 12019 【发布时间】:2015-04-05 04:14:47 【问题描述】:我正在开发一个基于 Java、JSP、Ajax 的 Web 应用程序,这些服务器是 JBoss,前端位于 Apche 2 服务器中。该应用程序可通过 Internet 访问。客户主要使用 IE 7、8、9 浏览器。
该应用程序之前运行良好。最近我们在网站上应用了 SSL 证书,之后我们开始收到用户抱怨应用 Ajax 的页面没有提交的投诉。通常我们在提交按钮上调用 ajax 并阻止页面,直到收到来自服务器的响应。我们应用了loggers,发现ajax请求调用失败,ajax jqXHR错误状态为12019。
我们观察到使用 IE(主要是版本 8 和 9)的用户会观察到此错误。错误的模式也不相同。有时同一用户能够提交更早投诉的页面,有时则不能。我尽力在我的本地和开发环境中生成这个场景,但不能。
我google了这个问题,发现12019错误代码是IE的一个错误。但为什么它在应用 SSL 之前起作用, 如果 SSL 不正确,为什么问题只出在 ajax 页面上,为什么不在其他地方。我不能说用户改变浏览器。
这让我疯狂了一个多星期。如果其他人之前观察并解决过这个问题,请帮助我。
【问题讨论】:
这个错误有什么运气吗? SSL 证书是基于 ip 还是基于域? IE 无法处理基于域的证书。 尝试让您的用户清除他们的缓存。 您是否尝试将缓存破坏器附加到您尝试通过 AJAX 调用的 URL?您还可以提供 jQuery 版本,或许还有经过清理的代码 sn-p? 您确定总是使用 SSL 发送 Ajax 请求吗?因为大多数浏览器不允许从 HTTPS 页面上的 HTTP 连接动态加载活动内容。 【参考方案1】:这是由于 IE 试图缓存它不应该缓存的东西。
有两种选择
不添加缓存头 "If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 GMT" “缓存控制”、“无缓存”
附加缓存清除参数 "x-1&y=2...&ieispoo="+Date.now()
我知道这是一个老问题,但其他人可能会从答案中受益。
【讨论】:
以上是关于Ajax 无法在 IE 错误代码 12019 上使用 SSL的主要内容,如果未能解决你的问题,请参考以下文章
IE11 HTTPS AJAX XMLHttpRequest:网络错误 0x2eff,由于错误 00002eff 无法完成操作
清除缓存后 IE10/IE11 Abort Post Ajax 请求出现错误“网络错误 0x2ef3”
JQuery - $.ajax() - 使用 JSONP 的跨域 - 仅在 IE 8 中获取“解析器错误”(在 IE 7 中工作)
IE11 在来自 iFrame 的 Ajax POST 操作期间返回状态 0(XMLHttpRequest:网络错误 0x2ee2