我正在尝试从HTTP页面向HTTPS服务进行跨域Web服务调用。
我在服务器上设置了正确的CORS头(它对于HTTP-HTTP和HTTPS-HTTPS有效)。
如果我将请求更改为JSONp,它是有效的。
我在Chrome和Firefox中看到的情况是HTTPS请求从未发送,它立即被中止,并且服务器永远不会收到请求。
值得注意的是,预检OPTIONS
请求被中止了(它没有到达服务器)。
我找不到任何解释这确实不可能(从HTTP到HTTPS),更好的是:解释为什么。我可以理解HTTPS到HTTP是不安全的,但反过来应该没问题吧?这似乎很荒谬,因为JSONp可以工作(但很麻烦)。
备注
我还设置了withCredentials
为true
,并且发送了一些自定义标头和自定义Content-Type
:application/json
我使用常规的XMLHTTPRequest,并针对IE<=9回退到JSONp。