tk挠痒痒网址发布页-秘密武器
历史搜索

P16:解决egg.js的跨域问题

游客2025-05-16 09:00:01
目录文章目录
  1. 安装 egg-cors
  2. 配置config/plugin.js文件
  3. 配置config.default.js

在上一篇笔记中项目最后预览时,我们遇到了跨域问题。这个是每个前后端分离的程序都会遇到的一个问题。本文就带大家解决这个跨域问题。

安装 egg-cors

egg-cors模块是专门用来解决egg.js跨域问题的,只要简单的配置就可以完成跨域的设置,但是跨域一定要谨慎设置,很多安全问题,都是通过跨域进行攻击的。

安装我们使用npm进行安装,命令如下:

npm install --save egg-cors

当然你也可以用yarn来安装

yarn add egg-cors

配置config/plugin.js文件

在安装完成后需要对/service/config/plugin.js文件进行修改,加入egg-cors模块即可。

exports.cors = {
  enable: true,
  package: 'egg-cors',
};

配置config.default.js

在配置完成plugin.js文件以后,还需要设置config.default.js文件。这个文件主要设置的是允许什么域名和请求方法可以进行跨域访问。配置代码如下。

config.security = {
  csrf: {
    enable: false,
  },
  domainWhiteList: [ '*' ],
};
config.cors = {
  origin: '*', // 允许所有域进行访问接口
  allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS',
};

当然,如果你只想让http://localhost:3000来进行接口方案,就可以设置成下面的代码。

config.cors = {
  origin: 'http://localhost:3000', // 只允许这个域进行访问接口
  credentials: true, // 开启认证
  allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS',
};

设置完成后,重启服务,就可以在浏览器中进行预览了,如果能正常访问,说明跨域访问已经设置成功了。

本文是由用户"游客"发布,所有内容的版权归原作者所有。没有经过书面许可,任何单位或个人不得以任何形式复制、转载、引用本网站的内容。否则将追究法律责任。

相关专题