You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网站源为notexample.com时,加载example.com脚本能否无CORS错误请求该域名?

问题解答

1. 跨域脚本的请求权限

当你的网站源是notexample.com,加载example.com/script.js的脚本后,该脚本发起对example.com的fetch请求会触发CORS拦截错误。原因很简单:浏览器的同源策略是基于当前页面的源,而非脚本的加载源——脚本运行在notexample.com的页面环境中,请求example.com属于跨域操作,必须目标服务器返回允许notexample.com的CORS响应头,才能绕过拦截。你现在没有拿到对应的允许头,报错是正常情况。

2. Google Maps API的实现机制

Google Maps客户端库能成功请求其API端点,核心是绕开了浏览器的跨域限制,具体逻辑如下:

  • 不直接发起浏览器跨域请求:你加载的Google Maps库,并不会让浏览器直接向核心API域名发送fetch请求,而是通过内部逻辑将请求转发到Google自身的同源代理接口,或是使用动态创建<script>标签的方式(类似JSONP,但现在是更完善的内部机制)。
  • 利用同源请求豁免CORS检查:库的请求目标是和自身加载域名同源的Google接口,属于同源请求,浏览器不会触发CORS拦截。
  • 服务器端处理实际请求:Google的代理接口会在服务器端调用真正的地理数据API,处理完成后再把结果返回给客户端;同时通过你嵌入的API密钥验证请求合法性,确保只有授权域名能使用服务。

简单来说,Google把跨域逻辑转移到了自己的服务器端,让客户端只需要和同源接口交互,既避开了CORS限制,也能更好地管控API的访问权限。

内容的提问来源于stack exchange,提问作者Oybek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:36:29