我有一個小頁面,我需要從另一個域獲取JSON。如果這樣做:如何使用jQuery從另一個域獲取JSON
$.get("http://dev.frevend.com/json/users.json", function(data) {
console.log(data);
alert("Load was performed.");
});
我得到一個錯誤。我明白爲什麼會拋出這個錯誤,但我不知道如何避免。 我沒有訪問服務器。
XMLHttpRequest cannot load http://dev.frevend.com/json/users.json . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:3000 ' is therefore not allowed access.
我還試圖用JSONP,但正如我在這種情況下,服務器應該明白響應包與回調函數,因爲我有一個SyntaxError。
是否可以使用JSONP發出此請求? 我試圖
$.ajax({
url: "http://dev.frevend.com/json/users.json",
dataType: "jsonp",
jsonpCallback: "logResults"
});
function logResults(data) {
console.log(data);
}
,但得到
Uncaught SyntaxError: Unexpected token :
JSON是有效的,我查了。
的可能重複http://stackoverflow.com/questions/28547288/no-access -control-allow-origin-header-is-present-on-the-requested-resource-err。還有其他一些關於它的問題。 –
服務器不允許來自其他域的請求分開。這是一個服務器端配置,您無法訪問服務器就無法更改它。查看:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS – Strahdvonzar
是否http://dev.frevend.com/json/users.json在您的控制之下? @arthur – Nandakumar