为什么本地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
全局中部横幅
麒麟自动链

麒麟自动链(70link.cn)是一个非常专业的自助链网站,免费为新老站点提供永久性的自动链广告位,让新老站点获得更多的被点击机会。无需注册,无需审核,提交网站,做上链接,清除缓存,点击一次,完成收录!

论坛

该站点未添加描述description...

直播个人中心

虎牙直播是年轻人喜爱的互动直播平台,900万人同时在线,提供高清、流畅的赛事直播和游戏直播.虎牙包含英雄联盟lol直播、dota2直播、穿越火线cf直播、dnf直播等热门游戏直播以及、美女主播、网络电视

腾讯网

腾讯网从2003年创立至今,已经成为集新闻信息,区域垂直生活服务、社会化媒体资讯和产品为一体的互联网媒体平台。腾讯网下设新闻、科技、财经、娱乐、体育、汽车、时尚等多个频道,充分满足用户对不同类型资讯的需求。同时专注不同领域内容,打造精品栏目,并顺应技术发展趋势,推出网络直播等创新形式,改变了用户获取资讯的方式和习惯。

灵曜

灵曜是一款端口映射及内网穿透软件,使您无需服务器,无需公网IP,无需设置路由器即可对外发布应用,远程桌面,支付调试,NAS云盘,游戏联机等都可使用,支持http,https,tcp协议.

SugarHosts

Sugarhosts以超值的价格提供品质卓越的美国、欧洲、亚洲主机服务,同时提供一百种域名与数十种SSL安全证书

百度云加速

该站点未添加描述description...

红尘资源网

红尘资源网欢迎各位,本站专注于收集分享各种最新破解资源、活动线报、娱乐资讯、绿色软件、技术教程,还有来自全网的网站模板、网站源码分享以及各种去广告软件下载.

分类目录

建链网分类目录,为广大草根站长提供最专业的网站快审服务,永久收录网站导航,开放式网站分类目录平台,网站目录免费收国内外各行业优秀网站,永久收录和永久锚文本让您的网站在各大搜索引擎收录快、排名靠前的高权重综合性网站目录平台。