火狐浏览器报跨源请求被拦截,说明同源策略阻止了对http://127.0.0.1:8080/api/data的访问;其原因在于协议、域名或端口不一致,且火狐对cors响应头校验更严格;临时可装cors everywhere插件并强制注入access-control-allow-origin:*头,或修改about:config中privacy.file_unique_origin为false(仅限本地file://调试);根本解决需在spring boot后端配置corsconfig类,通过webmvcconfigurer的addcorsmappings方法指定allowedorigins(如http://localhost:5173)、allowedmethods和allowedheaders,并确保重启服务后响应头正确返回。

火狐浏览器控制台报“已拦截跨源请求:同源策略禁止读取位于 http://127.0.0.1:8080/api/data 的远程资源”,说明你正用本地 HTML 文件或开发服务器(如 Vite、Webpack Dev Server)发起请求,而目标接口地址与当前页面协议、域名或端口不完全一致——火狐对跨域响应头校验比 Chrome 更严格,且默认启用 privacy.file_unique_origin 和更保守的 CORS 策略。
临时绕过:装 CORS Everywhere 插件
方法一:安装并强制注入 Access-Control-Allow-Origin 头
1) 地址栏输入 about:addons → 点击右上角“寻找更多附加组件” → 搜索 CORS Everywhere → 点击第一个结果旁的“添加到 Firefox”;
2) 安装完成后,点击插件右侧齿轮图标 → “选项” → 勾选 【Enabled at startup】 → 在 “Force value of 'access-control-allow-origin'” 输入框填入 * → 点击 Save;
3) 【必须关闭所有火狐窗口再重新启动浏览器】,否则插件不生效。
方法二:仅限调试本地 file:// 页面(比如双击打开的 index.html)
在地址栏输入 about:config → 接受风险继续 → 搜索 privacy.file_unique_origin → 双击将其值由 true 改为 false;
⚠️ 注意:这个设置会让所有本地文件共享同一源,仅用于离线调试,切勿在日常浏览中长期开启。
根本解决:后端 Spring Boot 配置 CORS
第一步:在 config 包下新建 CorsConfig.java 类;
第二步:添加 @Configuration 注解,并实现 WebMvcConfigurer 接口;
第三步:重写 addCorsMappings 方法,在 registry.addMapping("/**") 后链式调用 .allowedOrigins("http://localhost:5173") —— 这里不能写成 "*",否则后续若启用 credentials 将失效;
第四步:补全 .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") 和 .allowedHeaders("*");
第五步:重启后端服务,确保响应头中出现 Access-Control-Allow-Origin: http://localhost:5173。
快速验证是否真跨域
打开开发者工具 → 切换到 Network 标签页 → 点击一个失败的请求 → 查看 Headers → 对比 Request URL 和 Response Headers 中的 Access-Control-Allow-Origin 字段:
如果该字段完全缺失,说明后端没返回 CORS 头;
如果存在但值是 http://localhost:3000,而你当前页面地址却是 http://127.0.0.1:3000,则因域名不等效仍会报错——【localhost 与 127.0.0.1 在 CORS 中被视为不同源】。
补充:前端开发时避免触发预检请求
如果你的请求被浏览器自动发了 OPTIONS 预检,说明它属于“复杂请求”:比如设置了 Content-Type: application/json、带自定义 header 或用了 PUT/DELETE 方法。
临时方案:把请求改成简单请求,例如用 FormData 发送表单数据,Content-Type 自动设为 multipart/form-data;
长期方案:后端必须正确响应 OPTIONS 请求,返回 Access-Control-Allow-Methods 和 Access-Control-Allow-Headers 等头。











