为什么本地HTML、JS、JSON文件会出现跨域问题?-运维笔记-李洋博客

温馨提示:这篇文章已超过67天没有更新,请注意相关的内容是否还可用!

跨域问题的本质是浏览器的 同源策略(Same-Origin Policy) 限制。即使文件都在本地,以下情况也会触发跨域:

1. 文件协议不同(核心原因)

当直接用浏览器打开本地 HTML(file:///C:/project/index.html)时,源(Origin)会被视为 null。

如果此 HTML 中的 JS 尝试通过 fetch 或 XMLHttpRequest 加载同目录的 JSON 文件(file:///C:/project/data.json),浏览器会判定为跨域请求(源 null → file:// 协议),导致失败。

即使协议相同,如果 HTML 文件和 JSON 文件的目录路径不同(例如:file:///C:/project1/index.html 和 file:///C:/project2/data.json),也会触发跨域。

浏览器禁止从 file://协议发起网络请求(包括本地 JSON),因为本地文件可能包含敏感信息,同源策略会阻止 JS 随意读取它们。

为什么本地HTML、JS、JSON文件会出现跨域问题?-运维笔记-李洋博客

通过工具启动一个本地 HTTP 服务器,使所有文件通过 http://localhost 协议访问:

npx http-Server -p 5500  # 安装后访问 http://localhost:5500

Python 内置服务器:

python -m http.server 5500  # 访问 http://localhost:5500

⚠️ 临时绕过(仅开发环境)

通过浏览器启动参数禁用安全策略:

// 在 http://localhost:5500 下运行的 HTML 文件fetch('data.json')  .then(response => response.json())  .then(data => console.log(data));

关键结论

浏览器同源策略不会因为文件在本地就放宽限制。本地开发务必使用 HTTP 服务器(如 http-server 或 Live Server),这是最安全、规范的解决方案。直接双击打开 HTML 文件必然触发跨域问题。

IT老李提供个人和企业网站建设、网站运维、定制Z-Blogphp主题模板技术服务以及SEO排名优化的原创独立博客网站(网址:www.itlaoli.com)


本文地址: https://www.earthnavs.com/jishuwz/6f0663ec2cf96eaaaa94.html
全局中部横幅
伍陆柒导航网

伍陆柒导航网提供网址分类目录,技术教程导航和网站目录提交,分享源码资源,网址导航,自动秒收录为你提升流量,免费外链发布。

666资源站

最优质的资源集合

TIME

Breakingnewsandanalysisfromtime.com.Politics,worldnews,photos,video,techreviews,health,science,andentertainmentnews.

Home

Open-sourceWindowsandOfficeactivatorfeaturingHWID,Ohook,TSforge,KMS38,andOnlineKMSactivationmethods,alongwithadvancedtroubleshooting.

【汽车论坛】汽车社区

汽车之家论坛,全球最大汽车论坛,助力全球车友交流提车经历,用车感受,车友会活动,维修保养经验,自驾游等,更有媳妇当车模,美人生活秀,论坛红人馆等专题,精彩汽车内容尽在汽车之家

辰迅云

辰迅云是国内领先的企业级云计算服务提供商。专注公有云技术研发,主要面向广大开发者、政企用户、金融机构等,提供基于智能云服务器的全方位云计算解决方案,为用户提供可信赖的企业级公有云服务。

网创联盟

网创联盟(www.xmzhishi.com)是一个免费为大众提供创业副业项目的推荐资讯平台,在这里可以学到最新前沿的创业赚钱项目技巧,让您少走弯路,快速变现。

逗号站长站

逗号站长站,服务于互联网站长的站长工具。