【发布时间】:2016-08-05 22:38:59
【问题描述】:
我有一个小页面,我需要从另一个域获取 JSON。如果这样做:
$.get( "http://dev.frevend.com/json/users.json", function( data ) {
console.log(data);
alert( "Load was performed." );
});
我得到一个错误。我明白它为什么会抛出这个错误,但我不知道如何避免它。 我没有访问服务器。
XMLHttpRequest 无法加载 http://dev.frevend.com/json/users.json。不 'Access-Control-Allow-Origin' 标头出现在请求的 资源。因此不允许使用原点“http://localhost:3000” 访问。
我也尝试使用 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 是有效的,我检查了。
【问题讨论】:
-
stackoverflow.com/questions/28547288/… 的可能重复项。还有很多其他问题。
-
服务器不允许来自其他域的请求。这是一个服务器端配置,您不能在没有访问服务器的情况下更改它。签出:developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
-
dev.frevend.com/json/users.json 是否在您的控制之下? @亚瑟
-
没有。这很奇怪,因为这是我的工作任务,我认为我错过了一些东西。
标签: javascript jquery json ajax web