在同一機器上寫前端和后端,前端使用webpack-dev-server啟動,后端直接在eggjs項目目錄下使用npm run dev啟動,這種情況下,前端訪問后端就是跨域訪問。
eggjs提供了一個跨域插件egg-cors,官方相關示例配置如下:
// {app_root}/config/config.default.js
exports.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!
這個坑爬了很長時間,在此記錄下,希望能幫助其他掉入此坑的朋友快速爬出來。
