我有一個基於HTTPS的網站,我有一個JS代碼從基於HTTP的網站獲取數據。我收到一個HTTP服務器不可信的錯誤。 雖然相同的代碼適用於HTTP到HTTP。但不是HTTP到HTTPS。 這是錯誤:試圖從HTTP服務器從HTTPS網站檢索JSONP
Mixed Content: The page at ' https://www.33k.com/player/playerudan.php ' was loaded over HTTPS, but requested an insecure script ' http://33k.thepuremix.net/json.xsl '. This request has been blocked; the content must be served over HTTPS.
爲了得到這個數據我使用類似下面的代碼:
var URL = "http://33k.thepuremix.net/json.xsl"
$.getJSON(URL, function(data) {
console.log(data);
});
不知道如何解決它或使其工作。 Icecast上有這樣一個Crossdomain.xml,我可以給它配置或其他任何東西來修復它?
UPDATE: 上述鏈接是兩個不同的網站。這不是一個子域問題。鏈接看起來很像。域A(HTTPS)想要從域B(HTTP)獲取JSON。
這是由設計。安全連接無法向非安全連接發出請求(至少不是沒有用戶授權的情況下)。您需要使網站HTTP也可以,或者您所調用的域名應該更改爲HTTPS。更好的是,由於請求者和收件人頁面都在同一個域中,只需使用相對路徑 –
@Rory他不能只在他的https上創建後端服務(例如在php中)並從http上調用另一個服務? –
@LordMidi這完全是錯誤的。 JSONP是偶爾用於跨域請求的數據格式。它與安全/非安全內容之間的請求完全無關。 –