谷歌地图地理编码API中的CORS错误

CORS error in Google Maps Geocoding API

本文关键字:中的 CORS 错误 API 编码 谷歌地图      更新时间:2023-09-26

我正面临一个相当突然的谷歌地图地理编码问题。这一切都工作得很好,直到昨天,但从那以后,我一直得到一个CORS错误对他们的地理编码API的任何请求。

我的请求:

https://maps.googleapis.com/maps/api/geocode/json?latlng=18.92187618976372,72.82581567764282&key=<API_KEY>

我的请求头:

Provisional headers are shown
Accept:application/json, text/plain, */*
Origin:http://domain
Referer:http://domain/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36
X-FirePHP-Version:0.0.6

响应标头:

access-control-allow-origin:*
alternate-protocol:443:quic,p=1
cache-control:public, max-age=86400
content-encoding:gzip
content-length:1279
content-type:application/json; charset=UTF-8
date:Thu, 23 Jul 2015 09:50:49 GMT
expires:Fri, 24 Jul 2015 09:50:49 GMT
server:mafe
status:200
vary:Accept-Language
x-frame-options:SAMEORIGIN
x-xss-protection:1; mode=block

错误信息:

XMLHttpRequest cannot load https://maps.googleapis.com/maps/api/geocode/json?latlng=18.92187618976372,72.82581567764282&key=<API_KEY>. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://domain' is therefore not allowed access.

将标题设置为null对我来说很有效。

let url= `https://maps.googleapis.com/maps/api/geocode/json?latlng=${payload.lat},${payload.lng}&key=${process.env.NEXT_PUBLIC_GOOGLE_MAP}`;
 const res = await axios.get(url,{headers:null});

我的系统是这样设置的,我的前端是从我的逻辑服务器的跨域服务。为此,我将withCredentials标记设置为true。由于Maps的API使用*通配符,withCredentials给出了一个错误。

为了解决这个问题,我为Maps调用使用了一个单独的XHR方法,其中将标志设置为false。