【发布时间】:2017-09-16 19:47:01
【问题描述】:
我有一个基于 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,我可以提供 configure 或其他任何东西来修复它?
更新: 以上链接是两个不同的网站。这不是子域问题。链接看起来有点像。域 A(HTTPS) 想要从域 B (HTTP) 获取 JSON。
【问题讨论】:
-
这是设计使然。安全连接不能向非安全连接发出请求(至少在没有用户授权的情况下不能)。您也需要将您的网站设为 HTTP,或者您要调用的域应更改为 HTTPS。更好的是,由于请求者和接收者页面都在同一个域中,只需使用相对路径
-
@Rory 他不能在他的 https 上创建一个后端服务(例如在 php 中),然后在 http 上调用另一个吗?
-
@LordMidi 这完全是错误的。 JSONP 是一种偶尔用于跨域请求的数据格式。它与安全/非安全内容之间的请求完全无关。
-
@RoryMcCrossan 他们有不同的域。
-
或者他可以将
json.xsl脚本从子域http://33k.thepuremix.net/json.xsl移动到域https://www.33k.com。如果他有可能的话。
标签: javascript jquery json https getjson