2016-08-05 111 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'标头。** –

相关问题