Google Maps API密钥域名限制后请求被拒问题求助
解决Google Maps API密钥域名限制后报错的思路
我来帮你梳理几个可能的解决方向,你可以逐一排查:
检查HTTP Referrer限制的格式是否正确
Google对HTTP referrers的格式有严格要求,你设置的https://*.thedomain.com/*需要确认几个细节:- 通配符
*只能放在域名开头(比如*.thedomain.com)或路径结尾(比如thedomain.com/*),不能放在中间位置; - 必须明确指定协议(
https://),不能省略,也不要混用http://和https://,若需要支持两种协议得分开添加规则; - 实际设置时要去掉示例里的方括号占位符,直接写
https://*.thedomain.com/*这类真实规则。
- 通配符
确认来源页URL完全匹配限制规则
报错里显示请求来自https://xxx.xxx/,你要确认这个URL是否真的在*.thedomain.com的覆盖范围内:- 如果
xxx.xxx是thedomain.com的顶级域名(比如https://thedomain.com/),那*.thedomain.com是不匹配的——通配符*.仅匹配子域名,顶级域名需要单独添加一条https://thedomain.com/*的规则。
- 如果
排查Referrer-Policy的影响
部分网站会设置Referrer-Policy响应头,比如strict-origin、no-referrer这类值,可能导致Google Maps API无法获取完整的来源页URL,进而验证失败。你可以这样检查:- 打开浏览器开发者工具(F12),切换到Network标签;
- 刷新页面,找到Google Maps的请求,查看请求头里的
Referer字段是否是你预期的完整URL; - 如果Referer字段缺失或不完整,需要调整网站的
Referrer-Policy设置(比如改为strict-origin-when-cross-origin,注意unsafe-url虽能解决问题但有安全风险,谨慎使用)。
清除缓存并使用隐身模式测试
浏览器缓存的旧请求或会话数据可能干扰验证逻辑,你可以尝试:- 清除浏览器的缓存和Cookie;
- 用隐身/无痕窗口重新加载页面,测试地图是否能正常显示。
确认API密钥的限制范围是否正确
进入Google开发者平台的API密钥设置页,检查:- 密钥的应用限制是否只选择了
HTTP referrers (web sites),没有误选IP地址限制等其他类型; - API限制是否只勾选了你需要的
Maps Embed API和Maps Static API,没有遗漏或错误勾选其他API。
- 密钥的应用限制是否只选择了
如果以上步骤排查后仍有问题,你可以暂时添加一条宽松规则(比如https://*.thedomain.com不带路径)测试是否生效,再逐步缩小范围定位问题。
内容的提问来源于stack exchange,提问作者Thommy Tomka
相关产品推荐
相关产品推荐

