【发布时间】:2015-09-29 10:58:25
【问题描述】:
我正在尝试通过 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"
我得到了我正在寻找的响应。我该如何规避呢?不必为了curlAPI 的唯一目的而设置服务器会很好。
【问题讨论】:
-
如果您不控制labs.skanetrafiken.se/v2.2/neareststation.asp 的服务器端配置,以便您可以使其在响应中发送
Access-Control-Allow-Origin标头,那么您唯一的选择是设置一个(简单)代理您的请求来自同一来源。因为这里的限制是由浏览器设置的,没有办法诱使浏览器绕过它(除了在同源设置代理)。
标签: javascript ajax curl