我正在开发一个 Django 服务器。我需要从这里的外部服务获取一些数据。
这是我正在使用的 JavaScript 代码:
function getDeclination(latitude, longitude) {
var url = 'http://www.ngdc.noaa.gov/geomag-web/calculators/calculateDeclination';
url += '?';
url += 'lat1=' + latitude;
url += '&'
url += 'lon1=' + longitude;
url += '&';
url += 'resultFormat=xml';
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", url, false );
xmlHttp.send();
xml = xmlHttp.responseXML;
var temp_d = xml.getElementsByTagName('declination');
var string = temp_d[0].childNodes[0].nodeValue;
string = string.substring(1, string.length - 2);
return parseFloat(string);
}
使用此代码调用getDeclination(46.0815605783, 13.2158580422) 会引发此错误:
XMLHttpRequest cannot load
http://www.ngdc.noaa.gov/geomag-web/calculators/calculateDeclination?lat1=46.0815605783&lon1=13.2158580422&resultFormat=xml.
Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin
我怎样才能摆脱这个问题并返回测试?
编辑:
所以我安装了中间件和JS,但我无法得到结果。也许我在安装中间件的过程中出了点问题,这对我来说是第一次。我知道 Django 找到了它,并且它正在使用它,但我不知道我是否正确完成了设置。
XS_SHARING_ALLOWED_ORIGINS = "http://127.0.0.1:8000"
XS_SHARING_ALLOWED_METHODS = ['POST','GET','OPTIONS', 'PUT', 'DELETE']
我已将此代码放在settings.py 中,是否正确?因为我仍然得到同样的错误。