WebGL跨域的几种解决办法

2026/03 15 11:03

如果要从127.0.0.1请求128.0.0.1

方法1-服务器上添加域处理

需要在128.0.0.1上面配置

Access-Control-Allow-Origin *
Access-Control-Allow-Methods GET, POST, OPTIONS
Access-Control-Allow-Headers Content-Type, Authorization

或者将127.0.0.1添加到 128.0.0.1 上面

方法2-源代码请求头改造

源代码处理,将 128.0.0.1统一修改为 127.0.0.1,并且添加 proxy 中间路径

例如将 https://128.0.0.1/ 统一修改为 https://127.0.0.1/proxy/

然后在127.0.0.1中配置代码

handle /proxy/* {
    uri strip_prefix /proxy
    reverse_proxy 127.0.0.1:8082
    header -Cross-Origin-Embedder-Policy
    header -Cross-Origin-Opener-Policy
}

方法3-浏览器关闭检查(开发期)

"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --disable-web-security --user-data-dir="c:\tmp\edge-dev"

方法4-Fiddler 劫持

Fiddler 拦截响应注入 CORS 头(推荐)
Fiddler 作为系统代理运行,拦截到目标请求后自动注入响应头,无需改任何文件。
启动后开启 HTTPS 解密:Tools → Options → HTTPS → Decrypt HTTPS traffic
打开 Rules → Customize Rules,找到 OnBeforeResponse 函数,加入:

  static function OnBeforeResponse(oSession: Session) {
      if (oSession.hostname == "h5test.zhijianshanhai.com") {
          oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*");
          oSession.oResponse.headers.Add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
          oSession.oResponse.headers.Add("Access-Control-Allow-Headers", "*");
      }
  }

保存,Fiddler 会自动热重载规则。