Javascript 从HTTP到HTTPS的跨域请求立即中止
我正在尝试从HTTP页面到HTTPS服务进行跨域webservice调用 我已经在服务器上设置了正确的CORS头(它使用HTTP-HTTP和HTTPS-HTTPS) 如果我将请求更改为JSONp,它确实可以工作 我在Chrome和Firefox中看到的是,HTTPS请求从未发送,它会立即中止,服务器也从未看到该请求 值得注意的是,飞行前Javascript 从HTTP到HTTPS的跨域请求立即中止,javascript,https,xmlhttprequest,cors,Javascript,Https,Xmlhttprequest,Cors,我正在尝试从HTTP页面到HTTPS服务进行跨域webservice调用 我已经在服务器上设置了正确的CORS头(它使用HTTP-HTTP和HTTPS-HTTPS) 如果我将请求更改为JSONp,它确实可以工作 我在Chrome和Firefox中看到的是,HTTPS请求从未发送,它会立即中止,服务器也从未看到该请求 值得注意的是,飞行前选项请求被中止(并且不会到达服务器) 我找不到任何来源解释这确实是不可能的(HTTP到HTTPS),更好的是:解释原因。我可以理解HTTPS到HTTP是不安全的,
选项
请求被中止(并且不会到达服务器)
我找不到任何来源解释这确实是不可能的(HTTP到HTTPS),更好的是:解释原因。我可以理解HTTPS到HTTP是不安全的,但是其他方法应该可以,对吗?对我来说这似乎很愚蠢,因为JSONp可以工作(但它很混乱)
注释
我还将with credentials
设置为true
,并发送一些自定义标题和自定义内容类型
:应用程序/json
我正在使用常规的XMLHTTPRequest,并将其回退到IE的JSONp,这样可能更容易设置。这是相当快的开始,并将做所有的向后兼容性为您(所有的方式IE6)。它可能不是您正在寻找的本地解决方案,但如果您想要快速跨域(您可以访问双方),它符合您的要求
您可以随时编写自己的iframe(postMessage)接口,但为什么要重新发明轮子(如果您使用不同的子域,请不要忘记设置document.domain)。好的,我知道了。我用于HTTPS域的证书是自签名且未经验证的。将其添加到受信任的第三方机构列表中为我修复了它 您可以通过IE在Windows 7中安装证书。这对我很有用: 2009年11月2日zacharysyoung发布 确保您以管理员身份运行IE(9),否则即使安装正确,安装也会失败
我有一个有效的实现(JSONp)。但我想知道为什么Chrome和Firefox会阻止HTTP到HTTPS的请求。easyXDM看起来没有维护,不整洁,功能完全臃肿,需要。。闪光如果我想上传或真正大的请求,iframe回退可能会很有趣,但目前我没有这样的要求。我也不是“匆匆忙忙”。对于个别浏览器来说,协议在隐私和安全方面有很大的影响。新浏览器确实有“内容安全策略”,但不确定它是否是跨协议的。我可能会主动提出解决方案,但问题仍然存在。我相信上一次的改变是在不到一个月前(它只是相当稳定,不需要任何新功能)。至于flash,当postMessage不是一个选项,但它有一个大的(过度杀伤力的)功能集时,它被用作备用。我不确定你们的市场到底是什么,但你们也可以尝试和/或“访问控制允许来源”。同样,这些都是真正针对跨域,而不是跨协议的(但可能可以通过一个)。我使用的是CORS。。我想我提到了?什么是跨协议?HTTPS到HTTP当然,我可以理解,但是HTTP到HTTPS?你有我可以调查的实时网站吗?没有,我正在本地开发服务器上运行。非常有用。对于其他人来说,如果ssl证书出现问题,Firefox将自动中止选项请求。我只是通过直接进入域并为我的本地自签名添加一个例外来修复它。在那之后,选项请求工作得很好