我正在尝试与 React 应用程序中的 API ( http://labs.skanetrafiken.se/api.asp) 进行通信。
但是我一直被屏蔽
var url = 'http://www.labs.skanetrafiken.se/v2.2/neareststation.asp?x=55.720504899999995&y=13.1927948'
$.ajax({
type: "GET",
url: url,
async: true,
dataType : 'xml',
crossDomain:true,
success: function(data, status, xhr) {
console.log(data);
}
});
收到响应:
XMLHttpRequest cannot load http://www.labs.skanetrafiken.se/v2.2/neareststation.asp?latitude=55.720504899999995&longitude=13.1927948.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://stackoverflow.com' is therefore not allowed access.
但是当我像这样从我的终端尝试相同的请求时
curl "http://www.labs.skanetrafiken.se/v2.2/neareststation.asp?x=55.720504899999995&y=13.1927948&R=1000"
我得到了我正在寻找的响应。我怎样才能避免这个?最好不要设置一个服务器,其唯一目的是 curl
API。
最佳答案
您不能从 Javascript 执行此请求,因为请求的资源上不存在“Access-Control-Allow-Origin” header 。
因此资源 http://www.labs.skanetrafiken.se
不允许跨域请求。虽然此 Access-Control-Allow-Origin
属性不会设置为 *
或 http:/的 server 上的其他允许域/www.labs.skanetrafiken.se
,您不能对 API 进行跨域请求。
CORS 的描述
关于javascript - curl 和 ajax 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32842152/