我正在尝试从 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