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

时间:2016-05-23 09:46:45

标签: javascript http ssl https

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

7 个答案:

答案 0 :(得分:15)

  

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

你不能。

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

答案 1 :(得分:10)

我的角度项目遇到相同的问题,然后通过更改设置使其在Chrome中运行。转到Chrome设置->网站设置->不安全的内容->单击允许的添加按钮,然后添加您的域名 [*。] XXXX.biz

现在问题将会解决。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:-1)

尝试在s之后添加http

赞:

http://integration.jsite.com/data/vis => https://integration.jsite.com/data/vis

对我有用

答案 5 :(得分:-2)

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

这种方式:'/ data / 180 /' 而不是:'/ data / 180'

答案 6 :(得分:-3)

这很容易,
如果使用.htaccess,请在http:上查看https:,
如果您使用codeigniter,请检查config:url_base->您将HTTP更改的网址作为https ..... 我解决了我的问题。