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

本地文件触发CORS的原因解析及禁用可行性咨询

为什么本地同目录文件用fetch会触发CORS拦截?

核心原因:file://协议不在CORS允许的协议范围内

当你直接用Chrome打开本地HTML文件时,浏览器使用的是file://协议,而从错误信息能看到,CORS只支持chrome、http、https等特定协议,file://不在其中。这时候页面的origin会被标记为null,你用fetch('testing.csv')请求本地文件时,浏览器会把这个请求判定为跨源请求,直接触发CORS拦截。

同源策略的判断逻辑:不看文件系统目录,只看协议/域名/端口

你可能疑惑同目录为什么也算跨源——因为浏览器的同源策略判断完全基于协议、域名、端口三者是否一致,和文件系统里的目录无关。file://协议没有域名和端口的概念,浏览器为了安全,直接对file://下的资源请求做了严格限制:哪怕文件在同一目录,只要是通过fetch这类遵循CORS规则的API发起请求,都会被拦截,防止恶意脚本读取本地敏感文件。

浏览器的安全防护逻辑

file://协议绕过了Web环境的很多安全机制,比如没有服务器端的权限控制。如果允许file://下的fetch请求任意本地文件,那一个恶意的本地HTML文件就能读取你电脑上的隐私文件(比如文档、配置)。所以Chrome等现代浏览器都默认禁止了这类请求,这是浏览器层面的安全限制,和文件是否在同一目录无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 04:12:02