我有一个页面,上面有一些 D3 javascript。该页面位于 HTTPS 网站内,但证书是自签名的。
当我加载页面时,我的 D3 可视化效果不显示,并且出现错误:
混合内容:“https://integration.jsite.com/data/vis”页面是通过 HTTPS 加载的,但请求了不安全的 XMLHttpRequest 端点“http://integration.jsite.com/data/rdata” .csv'。该请求已被阻止;内容必须通过 HTTPS 提供。
我做了一些研究,发现 JavaScript 会使用与页面加载相同的协议进行调用。因此,如果页面是通过
https
加载的,那么 rdata.csv 也应该通过 https
请求,而不是作为 http
请求。
这是因为证书是在服务器上自签名的吗?除了安装真正的 SSL 证书之外,我还能做些什么来解决这个问题?
我可以做些什么来解决这个问题(除了安装真正的 SSL 证书)。
你不能。
在https网页上,您只能向https网页发出AJAX请求(使用浏览器信任的证书,如果您使用自签名的证书,则对您的访问者不起作用)
我的 Angular 项目也遇到了同样的问题,然后我通过更改设置使其在 Chrome 中工作。进入 Chrome 设置 --> 站点设置 --> 不安全内容 --> 点击允许的添加按钮,然后添加您的域名 [*.]XXXX.biz
现在问题就解决了。
您可以通过将此代码添加到您的 html 文件中来解决该错误:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
如果任何解决方案都不起作用,请尝试此解决方案。
我解决了在请求网址末尾添加斜杠的问题
这样:'/data/180/' 而不是:'/data/180'
对于我来说,我也有同样的警告。
我在 URL 请求中修复了它。 我有过多的“/”。
之前: 常量 url =
${URL}search/movie/?api_key=${API_KEY}&query=${movie}
;
之后: 常量 url =
${URL}search/movie?api_key=${API_KEY}&query=${movie}
;
将
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
添加到 html 文件中,这将解决问题。
您可以阅读更多关于 Mozilla 开发文档
我遇到了同样的问题,但是从 Visual Studio 中的 IIS 中,我转到项目属性 -> Web -> 并将项目 url 将 http 更改为 https
这里有一个解决方案,您可以通过 https 访问服务器端端点,然后调用任意一个 http url,然后返回结果。换句话说,制作你自己的小型 HTTPS 代理来访问 http 资源
update core_config_data
set value='X-Forwarded-Proto'
where path='web/secure/offloader_header'
这很容易,
如果您使用 .htaccess ,请检查 http: 中的 https: ,
如果您使用 codeigniter,请检查配置:url_base -> 将 url http 更改为 https.....
我解决了我的问题。