无法使用 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 浏览器插件,并在选项中启用跨源资源共享。

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

编辑:

您的端点可能看起来像这样:

首先做:

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

希望对您有所帮助。

理查德.