2016-08-05 30 views
0

我有一個小頁面,我需要從另一個域獲取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是有效的,我查了。

+2

的可能重複http://stackoverflow.com/questions/28547288/no-access -control-allow-origin-header-is-present-on-the-requested-resource-err。還有其他一些關於它的問題。 –

+0

服務器不允許來自其他域的請求分開。這是一個服務器端配置,您無法訪問服務器就無法更改它。查看:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS – Strahdvonzar

+0

是否http://dev.frevend.com/json/users.json在您的控制之下? @arthur – Nandakumar

回答

-2

嘗試在您的PHP文件中添加一個頭文件,該文件負責執行每個請求。

header('Access-Control-Allow-Origin', '*'); 
+2

引用OP:'我沒有訪問服務器' –

+0

@A先生。 Wolff:你怎麼能標記它沒有用,因爲OP明確指出**請求的資源中沒有'Access-Control-Allow-Origin'標頭。** –

相關問題