为什么我的跨域请求在Chrome里正常,但Firefox报CORS错误?
最近在做前后端分离项目时遇到奇怪的问题:XMLHttpRequest请求后端接口,在Chrome能正常获取数据,但Firefox却报Cross-Origin Request Blocked错误。我已经在后端设置了Access-Control-Allow-Origin: *,还试过用浏览器CORS插件临时绕过,但生产环境还是不行…
请求头里明明带了Origin: http://my-frontend.com,Firefox的控制台却显示服务器没返回Access-Control-Allow-Origin。难道不同浏览器对预检请求的处理逻辑差异这么大?求大神指点具体排查方向!
// 我的请求代码
fetch('https://api.example.com/data', {
method: 'GET',
mode: 'cors'
})
.catch(err => console.log('请求失败:', err));
Access-Control-Allow-Methods: GET, POST, OPTIONS和Access-Control-Allow-Headers: Content-Type。另外确保预检请求(OPTIONS)能正确返回这些头,而不是直接404或空响应。最后检查一下服务器是否正确处理了OPTIONS请求,很多框架默认没开这个。