首发于 语雀文档@blueju
前言:
我查阅了不少文档,配置的方法都是有错误的,甚至官方文档都是错的,年久失修的状态。
步骤:
- 安装 egg-cors
npm i egg-cors --save
- 启用 egg 插件 egg-cors
\config\plugin.js
module.exports = {
cors: {
enable: true,
package: 'egg-cors',
},
}
此处官方文档中写的是:(是错的或者已过时无效的,反正我试了无效,况且现在都用 ES6 里哪还有 exports.cors 这种写法,具体区别可参考此文档:www.cnblogs.com/fayin/p/683…)
// {app_root}/config/plugin.js
exports.cors = {
enable: true,
package: 'egg-cors',
};
- 配置 cors
\config\config.default.js
config.security = {
// 放开所有域名
domainWhiteList: ['*'],
};
此处官方文档中写的是:(也是错的或者已过时无效的,反正我试了无效)
exports.security = {
domainWhiteList: [ 'http://localhost:4200' ],
};
注意
有不少文档中还说要配这些:
config.cors = {
origin: '*',
allowMethods: 'GET, HEAD, PUT, POST, DELETE, PATCH',
credentials: true,
};
其实也是不对的,官方文档虽然有些内容是过时的,但是整体思想应该还是没变的,看官方文档中的这句话:
翻译过来就是:
如果设置了,则插件将跟随它来设置并忽略 .否则,默认的将如上所述生效。
因此我认为它并不是必需的,而是补充性的。
详见此次 commit 提交: