Egg.js 中如何正确处理跨域请求?

凡敬🍀 阅读 4

我在用 Egg.js 写后端接口,前端本地开发时请求总是被拦,控制台报 CORS 错误。试过在 config/config.default.js 里加 config.cors = { origin: '*' },但好像没生效,还是被浏览器拦截了。

是不是还要配其他地方?比如中间件或者安全策略?求指点一下正确的配置方式。

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
Good“树珂
哈,CORS问题我也踩过坑!在Egg.js里处理跨域确实需要配几个地方。我分享一下我常用的配置方法:

1. 首先确保在config.default.js里启用了cors插件:
config.cors = {
origin: '*', // 这里可以改成你的前端地址比如'http://localhost:3000'
allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH'
};


2. 然后检查下有没有开启security插件,这个默认是开启的,需要这样配:
config.security = {
csrf: {
enable: false // 开发环境可以关掉csrf
}
};


3. 如果你用了proxy或者nginx,记得也要在那边配跨域头

有时候配完要重启下服务才生效,我之前就是没重启折腾了半天。另外生产环境最好不要用origin:'*',建议指定具体域名更安全。

希望能帮到你!如果还不行可以看看是不是浏览器缓存了旧的响应头,可以试试无痕窗口或者清缓存。
点赞
2026-03-08 09:08