javascript - 为什么我从 HTTPS 域到 HTTP 本地主机的请求会失败 CORS?

标签 javascript ajax rest cors azure-functions

我有一个 REST 服务(作为 Azure 函数实现),在域 A 上的 HTTPS 上运行。

我有一个网站,在域 B 上通过 HTTPS 运行。

我已为 cors 指定通配符 *。

在网站上使用 jQuery,我将 Ajax 请求发送到其余服务。这有效,我可以看到由 OPTIONS 预检的 GET 请求。

enter image description here

当我开发休息服务时,我想在本地主机域上托管该服务,在 HTTP 上运行。这似乎不起作用。

我必须启用混合内容,但浏览器 (Firefox) 似乎没有发送或预检我的请求 - 网络流量为空。看来我的请求未能通过 CORS 请求。

这会出现在 Firefox 控制台中。

16:42:56.550 Loading mixed (insecure) active content "http://locahost:7071/api/test/get?message=get+hello+world!" on a secure page[Learn More] ajax.ts:153:23
16:42:56.558 Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://locahost:7071/api/test/get?message=get+hello+world!. (Reason: CORS request did not succeed).

我可以通过将本地 URL 设置为 //locahost 来避免混合内容错误,但这仍然会导致 CORS 失败。

发生这种情况是因为我尝试从 HTTPS 域到 HTTP 本地主机进行 CORS 操作吗?

最佳答案

此页面显示详细原因:混合内容默认被阻止。 https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content/How_to_fix_website_with_mixed_content

如果您没有设置允许的域列表,则还必须启用本地https,不仅Firefox,而且Chrome和IE也会阻止那些从https到http的请求。 顺便说一句,您不能在本地主机中使用自分配的证书,它也会被阻止并出现另一个错误。

关于javascript - 为什么我从 HTTPS 域到 HTTP 本地主机的请求会失败 CORS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51269439/

相关文章:

javascript - 通过在 Reactjs 中处理状态来改变图像源

javascript - 如何编写多个组件

javascript - 最好的 JavaScript 语法糖

Jquery ajax请求,等待最新请求完成

javascript - 使用 AJAX 时阻止跨域请求

javascript - 如何使用类方法作为回调在类中添加事件处理程序?

javascript - 我想从 JSON 数据数组中获取一个特定条目并进行一些修改

api - 如何正确缓存我的 Symfony2 API?

web-services - REST 服务器、Delphi 和 Web 服务 - 需要建议

java - 具有多个同名参数的 JAX-RS 查询