无法使用 sails js 为 google 地图地理位置设置 CORS
Cant set CORS using sails js for google maps geo location
我很难尝试在我的本地应用程序中启用 CORS。我一直在关注 sails.js 的文档,我所要做的就是更改此设置 "allRoutes: true" 以启用 cors。然后当我尝试使用 google API 使用 angular.
getLocation: function(val) {
return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
params: { address: val, sensor: false }
});
}
我的 chrome 控制台出现以下错误:
选项 http://maps.googleapis.com/maps/api/geocode/json?address=an&sensor=false
(index):1 XMLHttpRequest cannot load http://maps.googleapis.com/maps/api/geocode/json?address=ui&sensor=false. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:1337' 因此不允许访问。响应具有 HTTP 状态代码 405。
希望有人对此有解决方案。问候。
尝试在 Chrome 商店中安装此 chrome 浏览器插件,并在选项中启用跨源资源共享。
编辑:
您的端点可能看起来像这样:
首先做:
npm install request
然后:
在config/routes.js中设置你的路线:
'get /location/:keyword': {
controller: 'location',
action: "getlocation"
},
然后在api/controllers中创建一个名为LocationController.js
的控制器
在 LocationController.js 中设置您的 getlocation 操作。
var request = require('request');
module.exports = {
getLocation: function(req, res) {
var keyword = req.param('keyword');
var url = 'http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=' + keyword;
request(url, function (error, response, body) {
if (!error && response.statusCode === 200) {
res.jsonp({result : body});
}
});
}
};
然后您可以调用您自己的端点,服务器将从 google API return 您 JSON,绕过 CORS 问题。
获取:localhost:1337/location/california
希望对您有所帮助。
理查德.
我很难尝试在我的本地应用程序中启用 CORS。我一直在关注 sails.js 的文档,我所要做的就是更改此设置 "allRoutes: true" 以启用 cors。然后当我尝试使用 google API 使用 angular.
getLocation: function(val) {
return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
params: { address: val, sensor: false }
});
}
我的 chrome 控制台出现以下错误:
选项 http://maps.googleapis.com/maps/api/geocode/json?address=an&sensor=false
(index):1 XMLHttpRequest cannot load http://maps.googleapis.com/maps/api/geocode/json?address=ui&sensor=false. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:1337' 因此不允许访问。响应具有 HTTP 状态代码 405。
希望有人对此有解决方案。问候。
尝试在 Chrome 商店中安装此 chrome 浏览器插件,并在选项中启用跨源资源共享。
编辑:
您的端点可能看起来像这样:
首先做:
npm install request
然后:
在config/routes.js中设置你的路线:
'get /location/:keyword': {
controller: 'location',
action: "getlocation"
},
然后在api/controllers中创建一个名为LocationController.js
的控制器在 LocationController.js 中设置您的 getlocation 操作。
var request = require('request');
module.exports = {
getLocation: function(req, res) {
var keyword = req.param('keyword');
var url = 'http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=' + keyword;
request(url, function (error, response, body) {
if (!error && response.statusCode === 200) {
res.jsonp({result : body});
}
});
}
};
然后您可以调用您自己的端点,服务器将从 google API return 您 JSON,绕过 CORS 问题。
获取:localhost:1337/location/california
希望对您有所帮助。
理查德.