當作先後端分離時,經常遇到跨域訪問問題前端
這裏我用eggjs作後端,前端經過ajax獲取數據ajax
eggjs開啓跨域訪問,須要用到egg-cors插件npm
egg-cors安裝:json
npm i egg-cors --save
開啓egg-cors插件:後端
// config/plugin.js exports.cors = { enable: true, package: 'egg-cors', };
配置文件:api
// config/config.default.js // 配置指定的前端地址 config.cors = { origin: 'http://127.0.0.1:7002', allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS', // 下面這條加上才能共享跨域session,同時前端ajax請求也要加上響應的參數 credentials: true, }; config.security = { // 關閉csrf驗證 csrf: { enable: false, }, // 白名單 domainWhiteList: ['*'] };
路由加上:跨域
router.post('/api/test/list', controller.api.test.list);
前端ajax示例:session
$.ajax({ url: 'http://127.0.0.1:7001/api/test/list', type: "POST", json: true, xhrFields: { withCredentials: true }, precessData: false, success: function(result) { if (result.success) { console.log(result.msg); console.log(result.result); } else { console.log(result); } }, error: function(responseStr) { console.log(responseStr); } });