页面通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点

问题描述 投票:0回答:11

我有一个页面,上面有一些 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 证书之外,我还能做些什么来解决这个问题?

javascript http ssl https xmlhttprequest
11个回答
43
投票

我可以做些什么来解决这个问题(除了安装真正的 SSL 证书)。

你不能。

在https网页上,您只能向https网页发出AJAX请求(使用浏览器信任的证书,如果您使用自签名的证书,则对您的访问者不起作用)


40
投票

在 Chrome 中允许不安全内容的步骤

要允许

Chrome
内各个站点上的不安全内容,请单击 URL 栏中的锁定图标,然后单击“站点设置”。

您将看到该页面具有的各种权限的列表。选择“不安全内容”旁边的“允许”。

现在您的

HTTPS
站点可以访问
HTTP
端点


21
投票

我的 Angular 项目也遇到了同样的问题,然后我通过更改设置使其在 Chrome 中工作。进入 Chrome 设置 --> 站点设置 --> 不安全内容 --> 点击允许的添加按钮,然后添加您的域名 [*.]XXXX.biz

现在问题就解决了。


21
投票

您可以通过将此代码添加到您的 html 文件中来解决该错误:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />

如果任何解决方案都不起作用,请尝试此解决方案。


14
投票

我解决了在请求网址末尾添加斜杠的问题

这样:'/data/180/' 而不是:'/data/180'


3
投票

对于我来说,我也有同样的警告。

我在 URL 请求中修复了它。 我有过多的“/”。

之前: 常量 url =

${URL}search/movie/?api_key=${API_KEY}&query=${movie}
;

之后: 常量 url =

${URL}search/movie?api_key=${API_KEY}&query=${movie}
;


1
投票

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
添加到 html 文件中,这将解决问题。

您可以阅读更多关于 Mozilla 开发文档


0
投票

我遇到了同样的问题,但是从 Visual Studio 中的 IIS 中,我转到项目属性 -> Web -> 并将项目 url 将 http 更改为 https


0
投票

这里有一个解决方案,您可以通过 https 访问服务器端端点,然后调用任意一个 http url,然后返回结果。换句话说,制作你自己的小型 HTTPS 代理来访问 http 资源


0
投票
update core_config_data 
set value='X-Forwarded-Proto' 
where path='web/secure/offloader_header'

-16
投票

这很容易,
如果您使用 .htaccess ,请检查 http: 中的 https: ,
如果您使用 codeigniter,请检查配置:url_base -> 将 url http 更改为 https.....
我解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.