请求已被阻止;内容必须通过 HTTPS 提供

Posted

技术标签:

【中文标题】请求已被阻止;内容必须通过 HTTPS 提供【英文标题】:request has been blocked; the content must be served over HTTPS 【发布时间】:2018-12-18 12:26:52 【问题描述】:

我在后端使用 Spring Security 和 Spring MVC,在前端使用 Angular。 我的问题是我正确地登录了,但是我在我的本地主机中正确实现了注销的问题:http://localhost:8080 没有问题。当我将其更改为 https:// 时,我收到此错误:

混合内容:“”处的页面是通过 HTTPS 加载的,但请求了不安全的 XMLHttpRequest 端点“”。此。

我想知道如何纠正?以及如何知道浏览器中的https阻止了哪个url,例如chrome?

【问题讨论】:

【参考方案1】:

这篇文章可以解决您的问题:http://www.learningthegoodstuff.com/2015/08/mixed-http-error-with-spring-security.html

所有细节都在那里解释,基本上你所要做的就是将这两行添加到我的 application.properties 文件中:

server.tomcat.remote_ip_header=x-forwarded-for
server.tomcat.protocol_header=x-forwarded-proto

【讨论】:

感谢您的回答,我试过了,但还是不行【参考方案2】:

我通过从 URL 末尾删除正斜杠来修复所有问题。这对我有帮助:GET request throws error after app implemented SSL: Mixed Content: This request has been blocked; the content must be served over HTTPS"

【讨论】:

【参考方案3】:

当服务器使用http(非安全)时会发生这种情况。您可以通过对后端的所有资源强制执行 https 来修复它。详情请查看here。

【讨论】:

【参考方案4】:

在@Jabir Minjibir 的回答中有很好的链接来描述错误。总而言之,当您的应用程序使用 httpS 方案时,您无法访问 http 的不安全链接。

我收到了这个错误并修复了它,如下所示:

Mixed Content: The page at 'https://stackblitz.com/' was loaded over HTTPS, but 
requested an insecure XMLHttpRequest endpoint 'http://172.19.0.62:920/'. 
This request has been blocked; the content must be served over HTTPS.

您可以使用simple-https-proxy npm 包屏蔽不安全的链接。根据我的经验,我在httpS://stackblitz.com 上编写了一个角度示例,并且我试图连接到没有域名的 Elasticsearch 服务器。我需要让它与 ssl 一起工作,但我无法修改它的方案。因此,我安装了一个可以安全工作的代理 (httpS)。

    我安装了 npm 包:
npm i -g simple-https-proxy@latest

    然后我创建了证书:
simple-https-proxy --makeCerts=true
    然后我运行它
simple-https-proxy --target=http://172.19.0.62:9200 --port=9201 --rewriteBodyUrls=false

在另一个例子中:

【讨论】:

以上是关于请求已被阻止;内容必须通过 HTTPS 提供的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 错误:此请求已被阻止;内容必须在

HTTPS错误内容已被阻止怎样解决

本地主机已被 cors 策略请求标头字段内容类型阻止访问控制不允许

http://localhost:4200' 已被 CORS 策略阻止:对预检请求的响应未通过

已被 CORS 策略阻止:对预检请求的响应未通过

混合内容:Iframe 将 https 调用转换为 http 并且请求被阻止