私は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 がそれを見つけて、それを udsing していることは知っていますが、セットアップが正しく行われたかどうかはわかりません。
XS_SHARING_ALLOWED_ORIGINS = "http://127.0.0.1:8000"
XS_SHARING_ALLOWED_METHODS = ['POST','GET','OPTIONS', 'PUT', 'DELETE']
このコードをsettings.pyに入れましたが、これは正しいですか? 私はまだ同じエラーが発生するためです。