我有一个基于HTTPS的网站,我有一个JS代码,可以从基于HTTP的网站获取数据。我收到HTTP服务器不受信任的错误。 虽然相同的代码适用于HTTP到HTTP。但不是HTTP到HTTPS。 这是错误:
混合内容:' https://www.33k.com/player/playerudan.php'是通过HTTPS加载的,但请求了一个不安全的脚本' http://33k.thepuremix.net/json.xsl'。此请求已被阻止;内容必须通过HTTPS提供。
为了获取这些数据,我使用类似下面的代码:
var URL = "http://33k.thepuremix.net/json.xsl"
$.getJSON( URL, function( data) {
console.log( data );
});
任何想法如何解决或使其工作。在Icecast上是否有这样的Crossdomain.xml,我可以给它配置或其他任何东西来修复它?
更新: 以上链接是两个不同的网站。这不是一个子领域问题。这些链接看起来很像。域A(HTTPS)希望从域B(HTTP)获取JSON。
答案 0 :(得分:1)
从HTTPS调用HTTP被设计阻止为注释(同源策略)中提到的@RoryMcCrossan,您可以将脚本从HTTP移动到HTTPS或制作后端脚本(例如在PHP中)并从中调用HTTP像:
JavaScript(HTTPS) -> PHP(HTTPS) -> PHP(HTTP)
JavaScript(HTTPS) <- PHP(HTTPS) <- PHP(HTTP)
参考在PHP中创建http请求:Http Request in PHP
此处还提供了有关Same Origin Policy
的一些信息