我的网站上有一个奇怪的混合内容请求阻止问题,并相信我已经谷歌搜索已解决这个问题超过几个月了。
我使用AngularJS1作为前端,使用Spring引导作为后端。
当我访问我的网站时,有时会随机出现以下错误:
混合内容:http://mywebsite上的页面是通过HTTPS加载的,但是请求了一个不安全的XMLHttpRequest端点' http://mywebsite.com/'。此请求已被阻止;内容必须通过HTTPS提供。
但是当我刷新或重新加载页面时,这个问题就消失了。之后,一切都按预期完美运行,因为我没有使用任何HTTP ajax调用,只有内部HTTPS ajax调用。
我甚至检查过我的网站是否有使用" http"使用第三方工具,我的网站很干净。
这个问题不会一直发生。它会随机发生,但如果我刷新页面,它将永远消失。
请帮我解决这个问题。
==============截至2018年3月27日更新状态=================
虽然我做了一个解决方法,但我仍然遇到同样的问题。 我添加了errorCallBack,它捕获了除HTTP 500错误之外的所有错误,该错误仅用于重新加载页面一次的Ajax调用,以便重新加载页面以解决问题。
但这不应该是一个解决方案。请帮助我。
答案 0 :(得分:0)
你可以试试这个: -
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
或强>
<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content" />
将其粘贴到<head>...</head>
标记中。
HTTP Content-Security-Policy
(CSP)block-all-mixed-content
指令阻止在使用HTTPS加载页面时使用HTTP加载任何资产。
阻止所有混合内容资源请求,包括主动和被动混合内容。这也适用于<iframe>
文档,确保整个页面都是混合内容免费的。
在upgrade-insecure-requests
之前评估block-all-mixed-content
指令,如果设置了前者,后者实际上是无操作。建议设置一个指令或另一个 - 而不是两者。