特定于Firefox--CORS预检通道的CORS标头"Access Control Allow Header



我正在尝试对googleMapsClient地理代码进行api调用,但只有在使用firefox时才会收到XHR错误。它在chrome中运行良好,但在firefox中,我得到以下错误

>     Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at
> https://maps.googleapis.com/maps/api/geocode/json?address=Kothaguda%2C%20Hyderabad%2C%20Telangana%2C%20India&key=xxxx.
> (Reason: missing token ‘user-agent’ in CORS header
> ‘Access-Control-Allow-Headers’ from CORS preflight channel)

不确定为什么这是Firefox特有的。我可以看到在请求中有一个"用户代理"http头。非常感谢在这方面的任何帮助。

您正在使用@google/maps软件包吗?请注意,这个包应该只与node.js一起使用,而不是在浏览器中使用。README:中也说明了这一点

注意!这个库是为服务器端Node.js应用程序设计的。在浏览器或React Native等任何其他环境中,尝试在客户端使用它在某些情况下可能会奏效,但大多数情况下不会。在尝试使用这些环境时,请不要报告这些环境的问题,因为服务器端Node.js应用程序是该库唯一支持的环境。对于其他环境,请尝试Maps JavaScript API,它包含一个类似的feauture集,并且明确用于客户端JavaScript。

我建议使用Google Maps JavaScript API。

刚刚处理完这个完全相同的问题。我使用的是@google/maps库,地理编码在Chrome(v71(中运行良好,但在Firefox(v64(中飞行前失败,错误与最初的问题相同。

按照Rob的建议,我最终转而使用Google Maps JavaScript API来进行地理编码。

查看每个请求的详细信息。。。看起来CCD_ 3npm包使用与Google Maps JavaScript API不同的URL。事实上。。。JavaScript API使用的URL返回一个JSONP结构,并避免一起处理整个CORS的事情。

为什么使用@google/maps对地址进行地理编码在Chrome中效果良好而在Firefox中效果不佳,这对我来说仍然是个谜。我认为与Chrome相比,Firefox有更严格的CORS要求。

最新更新