在我的 angularjs 应用程序中,我试图从在线休息服务中获取一些信息,在我的情况下是 longtude 和纬度,但给了我一个错误
XMLHttpRequest cannot load http://iatageo.com/getLatLng/OPO. No 'Access-Control-Allow-Origin'
Possibly unhandled rejection: {"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"http://iatageo.com/getLatLng/OPO","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":""}
我的截取代码是:
$scope.originAirport = 'OPO';
$http.get('http://iatageo.com/getLatLng/'+$scope.originAirport).then(function(response){
$scope.originLatLong = response.data;
});
起初,我认为这是因为我在本地运行,但是在生产中运行后,我遇到了同样的问题。我正在使用 angularjs 1.6*
不允许 CORS,因此请尝试通过创建自己的服务器来解决此问题,该服务器将从 API 获取信息,然后将其传递给您的服务器。
同样,API 不允许 CORS XMLHttpRequest cannot load http://iatageo.com/getLatLng/BSB. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
如果你熟悉 NodeJS Express,你可以在下面使用这个脚本。
const App = require('express')();
const CORS = require('cors');
const RP = require('request-promise');
const PORT = 3000;
const BASEURL = 'http://iatageo.com/getLatLng/';
App.use(CORS());
App.get('/getLatLng/:airport', function(request, response) {
const airportCode = request.params.airport;
const URL = BASEURL + airportCode;
RP({ url: URL, json: true }).then(function(data) {
response.json(data);
});
});
App.listen(PORT, function(err) {
if (err) throw err;
console.log('listening to port:', PORT);
});