跨域请求被阻止 - 如何绕过它而无需访问服务器

时间:2016-05-02 14:42:11

标签: javascript xmlhttprequest cross-domain

我正在创建一个自定义主页,这需要我从各个站点获取数据(例如,天气)。

我一直在使用以下代码:

var req = new XMLHttpRequest()
req.open('GET', 'http://weather.com/en-GB/weather/today/l/...')
req.send()
req.addEventListener('load', function() {
    console.log(this.responseText)
})

在发送之前我也试过了req.withCredentials = true,但没有区别。

我发现了与此有关的各种问题,但是大多数用户都可以访问服务器。我唯一能找到的就是:

Firefox CORS request giving 'Cross-Origin Request Blocked' despite headers

没有一个答案说如何解决这个问题,所以我的问题是 - 如何解决这个错误?

1 个答案:

答案 0 :(得分:1)

尝试使用jsonp

$.ajax({
   url: 'http://weather.com/en-GB/weather/today/l/SS7:4:UK',
   dataType: 'JSONP',
   jsonpCallback: 'callback',
   type: 'GET',
   success: function (data) {
   console.log(data);
}
});

https://learn.jquery.com/ajax/working-with-jsonp/