我有一个从地理位置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传感器替代...
使用位置覆盖时,CORS API应该允许标头Accept-Language
: