【问题标题】:Access-Control-Allow-Origin error only for gmap elevation API [duplicate]Access-Control-Allow-Origin 错误仅适用于 gmap 海拔 API [重复]
【发布时间】:2017-12-12 02:54:08
【问题描述】:

我尝试根据纬度和经度获取站点的海拔高度。当我使用 ajax 调用时出现错误。我已经尝试过 HTTP 和 HTTPS 得到相同的错误消息是

“请求的资源上没有 'Access-Control-Allow-Origin' 标头。因此不允许访问 Origin 'http://localhost'。”

但它在浏览器中给出的相同 URL (https://maps.googleapis.com/maps/api/elevation/json?locations=36.7391536,-110.9847034)。

我添加了一些标题信息,例如 ('Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': true,'Access-Control-Allow-Methods': 'GET,放置,发布,删除')。 数据类型:'json' / 'jsonp' / 'application/json' 和 crossDomain: true, 但它不起作用。

ajax 调用适用于地理编码 URL,但不适用于高程 URL

siteElevationlatLong: function (lat, long) {              
    var deferred = $q.defer();
    $.ajax({
        url: 'https://maps.googleapis.com/maps/api/elevation/json',              
        data: {
            sensor: false,
            locations: lat +',' + long,
        },
        dataType: 'json',
        success: function (data) {                      
            if (data.status == "OK" || data.status == "ZERO_RESULTS") {
                deferred.resolve(data.results);
            } else {
                deferred.resolve([]);
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {                      
            deferred.reject(jqXHR.responseText);
        }
    });
    return deferred.promise;
}

【问题讨论】:

  • 是的,我已经尝试过 Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': true 这两个然后我也没有得到结果
  • 必须在来自服务器的响应中设置标头,即由 Google 设置。
  • 那我该如何实现这个
  • 我认为您可能需要使用不同的 API。您正在尝试使用为应用程序开发人员设计的 API。浏览器版本见developers.google.com/maps/documentation/javascript/elevation
  • 兄弟,我没有在这里显示任何地图,只是我需要基于纬度和经度的海拔高度

标签: javascript jquery angularjs ajax google-maps


【解决方案1】:

您可以通过将数据类型从“dataType: 'jsonp'”或“datatype: 'application/json'”更改来试试吗

【讨论】:

  • 兄弟,我用 JSONP 试过了,但没有成功
  • 当我使用 JSONP 时,我收到了类似 parseerror 的错误,并且在控制台日志中显示“Uncaught SyntaxError: Unexpected token :”
  • 提及调用“post”的类型并将更改从 jsonp 还原为 json
  • 好的,我会检查并告诉你
  • 你兄弟它也不起作用。尝试使用“json”时收到相同的错误消息(请求的资源上不存在“Access-Control-Allow-Origin”标头)。并在'jsonp'中“未捕获的语法错误:意外的令牌:”。
猜你喜欢
  • 2019-08-08
  • 2016-08-28
  • 2013-01-12
  • 1970-01-01
  • 2016-11-22
  • 2016-12-09
  • 1970-01-01
  • 2018-12-12
  • 2017-07-13
相关资源
最近更新 更多