【发布时间】:2020-06-16 09:44:50
【问题描述】:
我有一个应用程序从地理定位 api 中提取 lat/lng,并对休息 api 进行一些反向地理编码。
我曾经能够在开发者工具中使用 Chrome 传感器覆盖来测试不同的位置。但是,最近生成的 AJAX 调用已停止工作,即使我知道其余 api 正确设置了 CORS 标头,我也收到了 CORS 错误。事实上,当我将位置设置为“无覆盖”时,呼叫正常工作。
我已经设置了一个小提琴here 来演示。它访问的 url 没有设置 CORS(我找不到设置的公共回显),但可以看到行为。
观看网络标签。选择“无覆盖”时,Chrome尝试执行直接获取请求。选择“伦敦”时,Chrome发送选项请求,此请求失败是否为CORS或不配置REST API。显然,在小提琴中,所有这些都因为 api 而失败,但即使是正确配置的端点也会失败,并出现通常的 header not set 错误。
这是一个错误还是我遗漏了什么?
$('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>
【问题讨论】:
标签: javascript google-chrome geolocation