Chrome地理位置传感器破坏了CORS

问题描述 投票:0回答:1

我有一个从地理位置api提取lat / lng并针对其余api进行反向地理编码的应用程序。

我曾经能够使用开发人员工具中的Chrome传感器替代功能来测试各个位置。但是,最近产生的AJAX调用已停止工作,即使我知道其余api的CORS标头设置正确,我也遇到了CORS错误。实际上,当我将位置设置为“不覆盖”时,呼叫将正常工作。

我设置了小提琴here进行演示。它访问的URL没有CORS设置(我找不到一个这样做的公共回声),但是可以看到该行为。

观看网络标签。当选择“不覆盖”时,chrome尝试执行直接的GET请求。选择“伦敦”后,Chrome会发送OPTIONS请求,无论是否为CORS配置了其余api,此请求都会失败。显然,在小提琴中,所有这些操作都由于api而失败,但是即使配置正确的端点也失败,并且通常的标头未设置错误。]

这是错误还是我缺少什么?

$('button').on('click', function(e) {
  navigator.geolocation.getCurrentPosition(function(position) {
    var lat = position.coords.latitude;
    var lng = position.coords.longitude;
    $.get('https://postman-echo.com/get?q=' + lat + ';' + lng, function(res) {
      console.log(res.body);
    });
  });
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>
  Click
</button>

我有一个应用程序,它从地理位置api提取lat / lng,然后对其余api进行反向地理编码。我曾经能够在开发人员中使用Chrome传感器替代...

javascript google-chrome geolocation
1个回答
0
投票

使用位置覆盖时,CORS API应该允许标头Accept-Language

© www.soinside.com 2019 - 2024. All rights reserved.