在同一机器上写前端和后端,前端使用webpack-dev-server启动,后端直接在eggjs项目目录下使用npm run dev启动,这种情况下,前端访问后端就是跨域访问。
eggjs提供了一个跨域插件egg-cors,官方相关示例配置如下:// {app_root}/config/config.default.jsexports.cors = { // {string|Function} origin: '*',// {string|Array} allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH'};要让axios自动发送服务器cookie,必须将axios设置添加上withCredentials:true,这时候,egg-cors配置中origin就不能配置为'*',否则会冲突,应该配置成前端地址(比如我的设置成http://localhost:9528),allowMethods根据需要配置,仅仅这样还不行!!!这里egg-cors的配置还:必须加上credentials:true!这个坑爬了很长时间,在此记录下,希望能帮助其他掉入此坑的朋友快速爬出来。