我有这个问题。在外部网站上,我有一个这样的脚本:
<div id="idtest"></div>
<script src="//example.com/widget.js" type="text/javascript"></script>
example.com 在 https 中(允许 http 和 https)。在脚本 widget.js 的服务器中,我有:
$('#idtest').load("https://example.com/index.html")
我收到此错误:混合内容:“thepage”处的页面是通过 HTTPS 加载的,但请求了一个不安全的 XMLHttpRequest 端点“http://example.com/index.html” '.此请求已被阻止;内容必须通过 HTTPS 提供。
我不明白:为什么会出错,为什么端点在“http”中? 谢谢
编辑
更多信息:
如果在 widget.js 中我这样做:
$('#idtest').load("./index.html")
如果我在我的站点中加载脚本,内容已加载并且一切正常。
如果我这样做:
x = "https://example.com"
$('#idtest').load(x + "/index.html")
或
$('#idtest').load("https://example.com/index.html")
我收到错误消息(如果我将脚本放在我的站点或外部站点中)。为什么?
编辑 2
更多信息:
我的网站在 django 中
编辑 3
在 firefox 中,我以 https 和 http 加载页面。它在 Chrome 中不起作用。调用 url 时,我在 firefox 网络分析器中看到了这种情况:
302 https://example.com/index.html 200 http://example.com/index.html [混合内容]
这种情况怎么理解(https到http)?可能是 Django 重定向问题?
最佳答案
A mixed content error发生在:
- 您尝试在不安全 (
http
) 服务的页面上加载安全内容 SSL(https
)
或者相反
- 您尝试在安全提供的页面上加载不安全的内容 (
http
) SSL(https
)
您的错误消息警告您的调用页面已在不安全模式下加载
您没有明确解释这一点,但您的错误表明您的页面在没有 SSL 的情况下提供。当您尝试加载 protected 资源时,这将成为 protected 资源和不安全的混合模式问题。
如果可能,您尝试以相同的方式提供引用文件
您可以在 SSL (
https
) 中提供您的主页您可以在
中请求部分页面http
$('#idtest').load("http://example.com/index.html ")
或
- 正如您已经解决的那样,请求不带协议(protocol)的部分页面。现在您加载的文件将使用您的页面使用的协议(protocol)加载。
关于您的特定资源:
我试过加载:
和
https://example.com/index.html
结果是一样的。我得到了一个带有消息的简单页面:
示例域
此域用于文档中的说明性示例。您可以在示例中使用此域,而无需事先协调或请求许可。
关于javascript - Jquery 加载 https url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30663615/