Egg.js 中如何正确处理跨域请求? 凡敬🍀 提问于 2026-03-08 09:07:16 阅读 26 前端 我在用 Egg.js 写后端接口,前端本地开发时请求总是被拦,控制台报 CORS 错误。试过在 config/config.default.js 里加 config.cors = { origin: '*' },但好像没生效,还是被浏览器拦截了。 是不是还要配其他地方?比如中间件或者安全策略?求指点一下正确的配置方式。 Egg.js 我来解答 赞 8 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 Des.兴慧 Lv1 Egg.js 处理 CORS 最简单的办法是装官方插件。 先装依赖:npm i egg-cors --save 然后在 config/plugin.js 加上: exports.cors = { enable: true, package: 'egg-cors' }; 最后在 config/config.default.js 配置: config.cors = { origin: '*', allowMethods: 'GET,POST,PUT,DELETE,OPTIONS' }; 改完重启服务就行。你之前配置没生效是因为没启用插件,光有配置没用。 回复 点赞 2026-03-11 12:10 Good“树珂 Lv1 哈,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 加载更多 相关推荐 2 回答 62 浏览 Egg.js 中如何正确渲染带变量的 HTML 模板? 我在 Egg.js 里用 view 渲染 HTML,想把 ctx.locals 的变量传到页面里,但页面上直接显示了 这段代码,根本没解析成实际值。是不是模板引擎没配对? 我用的是默认的 ejs,co... 夏侯若彤 前端 2026-03-21 13:47:19 2 回答 60 浏览 Egg.js 中如何正确返回 HTML 页面并渲染模板? 我在 Egg.js 里写了个 controller,想返回一个简单的 HTML 页面,但页面总是显示空白或者报错。我试过用 ctx.body 直接返回字符串,也试过用 view 模板,但都不对。 这是... シ艳珂 前端 2026-03-17 03:20:20 2 回答 69 浏览 JSONP跨域调用时如何防范第三方注入恶意脚本导致XSS? 我在用JSONP做跨域请求时突然意识到,如果第三方接口返回恶意代码,岂不是能直接在页面执行?比如我这样调用: const script = document.createElement('script... Top丶茂庭 安全 2026-01-31 23:36:30 2 回答 46 浏览 Next.js中getServerSideProps里怎么正确调用异步API并处理错误? 我在用Next.js做服务端渲染,想在getServerSideProps里请求用户数据,但一遇到网络错误页面就直接挂了,试过try/catch好像也不起作用。 这是我的代码: export asyn... 设计师诗谣 框架 2026-03-27 16:55:18 1 回答 56 浏览 Draft.js 中如何正确处理空格和换行符的显示问题? 我在用 Draft.js 做一个富文本编辑器,发现用户输入的空格和回车在保存后显示不正常,比如多个空格变成一个,换行直接没了。这该怎么处理? 我试过用 convertToRaw 保存内容,再用 con... 司徒志欣 组件 2026-03-14 12:38:23 1 回答 50 浏览 Draft.js 中如何正确处理空格和换行的保存问题? 我在用 Draft.js 做一个富文本编辑器,内容保存到后端时发现连续空格和换行经常被吃掉。比如用户输入了多个空格或回车,转成 HTML 后就变成一个或者直接没了,这体验很不好。 我试过用 conve... 上官照涵 组件 2026-03-12 12:30:20 2 回答 51 浏览 Next.js中如何正确处理登录后的页面跳转? 我在用Next.js做用户登录,调用API成功后想跳转到首页,但用router.push没反应,页面卡在登录页不动。 我试过在useEffect里判断isAuthenticated然后跳转,也试过直接... 百里立顺 框架 2026-03-08 13:33:20 2 回答 48 浏览 JSONP跨域请求在Vue中怎么用?一直报错 我在Vue项目里想用JSONP请求第三方接口,但总是失败,浏览器控制台提示“Uncaught ReferenceError: callback is not defined”。我试过动态创建scrip... 迷人的保艳 前端 2026-03-05 23:37:22 1 回答 56 浏览 Next.js中间件里怎么获取请求的URL路径? 我在写Next.js的middleware时,想根据用户访问的路径做不同处理,但不知道怎么拿到当前请求的URL。试了req.url但好像不是标准格式,还带上了查询参数,搞得判断很麻烦。 比如我想拦截所... W″淑萍 框架 2026-03-01 09:38:20 2 回答 88 浏览 Next.js中间件里怎么获取请求的URL路径? 我在写Next.js的middleware时,想根据用户访问的路径做不同处理,但不知道怎么拿到当前请求的URL路径。试了request.url,结果是个完整URL,还要自己解析,有没有更直接的方法? ... 夏侯树辰 框架 2026-02-28 23:45:22
先装依赖:
npm i egg-cors --save然后在 config/plugin.js 加上:
最后在 config/config.default.js 配置:
改完重启服务就行。你之前配置没生效是因为没启用插件,光有配置没用。
1. 首先确保在config.default.js里启用了cors插件:
2. 然后检查下有没有开启security插件,这个默认是开启的,需要这样配:
3. 如果你用了proxy或者nginx,记得也要在那边配跨域头
有时候配完要重启下服务才生效,我之前就是没重启折腾了半天。另外生产环境最好不要用origin:'*',建议指定具体域名更安全。
希望能帮到你!如果还不行可以看看是不是浏览器缓存了旧的响应头,可以试试无痕窗口或者清缓存。