即使我的网站上有Access-Control-Allow-Origin,也会一直收到错误

时间:2012-11-19 04:45:08

标签: xmlhttprequest access-control

我在PHP文件的顶部有这一行(准确地说是第3行):header('Access-Control-Allow-Origin: *');

然后,在PHP文件的底部我有XMLHttpRequest

var coordinates_latitude = position.coords.latitude.toFixed(6);
var coordinates_longitude = position.coords.longitude.toFixed(6);
var req = new XMLHttpRequest();

req.open('GET', 'http://api.yr.no/weatherapi/locationforecast/1.8/?lat=' + coordinates_latitude + ';lon=' + coordinates_longitude, false); 
req.send();
if(req.status == 200) {
    alert(req.responseText);
}

position是我通过HTML5调用的GPS位置。现在我的问题。我一直收到以下错误消息:

XMLHttpRequest cannot load http://api.yr.no/weatherapi/locationforecast/1.8/?lat=59.378217;lon=13.504219. Origin http://localhost:8081 is not allowed by Access-Control-Allow-Origin.
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101

根据我搜索到的几十个网站,当我用谷歌搜索我的问题时,包括这个网站有许多已接受的答案,这是正确的解决方案。但对我来说它不起作用!我要疯了!这段代码出了什么问题?

注意:我已在IfModule中测试了.htaccess及其类似内容。也不起作用。

提前致谢。

1 个答案:

答案 0 :(得分:1)

网站上添加access-control-allow-origin,可让其他网站呼叫您的网站。

您需要的是将此标题添加到您正在阅读信息表单的网站(在您的情况下为“api.yr.no”)。如果您无法控制此站点,即如果所有者可以添加此类标题或使用服务器端代理方法,请与所有者核实。