为什么我的https://请求被取消,改成了http://,导致混合请求错误?
Why is my https:// request cancelled and changed to http://, causing a mixed request error?
我有一些简单的延迟加载javascript:
script.type = 'text/javascript';
script.src = 'https://example.com/'+urlToJavascript;
script.onreadystatechange = callback;
script.onload = callback;
head.appendChild(script);
SSL 运行在我的域 https://example.com/ 上可用。
尽管 https
在 script.src 中,但我得到了这个混合内容错误:
The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure script 'http://example.com/js/lazyScript.js'. This request has been blocked; the content must be served over HTTPS.
I 运行 console.log(script)
,显示:
<script type="text/javascript" src="https://example.com/js/lazyScript.js"></script>
然后我转到检查器的网络选项卡,发现初始请求 https://example.com/js/lazyScript.js
已发出但随后被取消,随后是对不安全 http://example.com/js/lazyScript.js
的请求,然后由于以下原因被阻止混合内容。
我以前从未遇到过这种情况,也不知道为什么会这样。
发生这种情况的原因是什么?
这可能是由于在服务器级别进行了一些重写。我也遇到了同样的问题,它是 nginx 以某种方式将 url 转换回 http。尝试直接在浏览器中加载资源 url 并查看是否发生重定向。如果是,请返回服务器并修复重定向。
我有一些简单的延迟加载javascript:
script.type = 'text/javascript';
script.src = 'https://example.com/'+urlToJavascript;
script.onreadystatechange = callback;
script.onload = callback;
head.appendChild(script);
SSL 运行在我的域 https://example.com/ 上可用。
尽管 https
在 script.src 中,但我得到了这个混合内容错误:
The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure script 'http://example.com/js/lazyScript.js'. This request has been blocked; the content must be served over HTTPS.
I 运行 console.log(script)
,显示:
<script type="text/javascript" src="https://example.com/js/lazyScript.js"></script>
然后我转到检查器的网络选项卡,发现初始请求 https://example.com/js/lazyScript.js
已发出但随后被取消,随后是对不安全 http://example.com/js/lazyScript.js
的请求,然后由于以下原因被阻止混合内容。
我以前从未遇到过这种情况,也不知道为什么会这样。
发生这种情况的原因是什么?
这可能是由于在服务器级别进行了一些重写。我也遇到了同样的问题,它是 nginx 以某种方式将 url 转换回 http。尝试直接在浏览器中加载资源 url 并查看是否发生重定向。如果是,请返回服务器并修复重定向。