eggjs跨域訪問—CORS插件

當作先後端分離時,經常遇到跨域訪問問題前端

這裏我用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);
    }
});
相關文章
相關標籤/搜索