我在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
及其类似内容。也不起作用。
提前致谢。
答案 0 :(得分:1)
在 网站上添加access-control-allow-origin
,可让其他网站呼叫您的网站。
您需要的是将此标题添加到您正在阅读信息表单的网站(在您的情况下为“api.yr.no”)。如果您无法控制此站点,即如果所有者可以添加此类标题或使用服务器端代理方法,请与所有者核实。