我想使用JavaScript(jQuery)Ajax從一個URL中獲取一些JSON內容,但它總是無法加載資料。
我的代碼非常簡單:
我的代碼非常簡單。
<div id="content"/span>>
正在加載...
</div>
console.log("jQuery Version: " jQuery.fn.jquery)。)
$.ajax({
type: "GET"。
url: "https://www.teamspeak.com/versions/server.json"。
dataType: "json",
success: function(data){
$("#content").html(資料)。
console.log("SUCCESS: " JSON.stringify(data))。
},
error。function(data){
$("#content").html("Failed to load data. " JSON.stringify(data))。
console.log("ERROR: " JSON。 stringify(data))。
},
完成。function(data){
console.log("COMPLETED: " JSON.stringify(data))。
},
});
該頁面始終顯示這樣的內容:
Failed to load data. {"readyState":0, "status": 0,"statusText":"error"}。
當我嘗試dataType: "jsonp" (with the P) 而不是 dataType: "json",那么它就會顯示這個內容:
Failed to load data. {"readyState":4, "status": 200,"statusText":"load"}。
那么......它是成功的,但它仍然在加載?我不明白。當我在瀏覽器中打開上述的URL時,我可以看到application/json格式的資料。
檢查這里的代碼的結果。https://jsfiddle.net/j2t91osz/1/
uj5u.com熱心網友回復:
你無法完成呼叫,因為你正在向一個主機地址(www.teamspeak.com)的URL發出請求,這個主機地址與HTML頁面部署的地址(jsfiddle.net)不同。
看一下控制臺中顯示的資訊:
從原點'https://fiddle.jshell.net'訪問'https://www.teamspeak.com/versions/client.json'的 XMLHttpRequest 已被 CORS 策略所阻止。請求的資源上沒有'Access-Control-Allow-Origin'頭。
當這種情況發生時(不同的主機),您的請求將受到相同來源策略的約束。在這種情況下,瀏覽器將只允許請求完成如果回應包含一些授權呼叫的特定頭資訊(例如Access-Control-Allow-Origin)。更多細節在此。 如何使其發揮作用?
如何使其發揮作用?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/307641.html
標籤:
