開發模式
要知道,跨域這個行爲是瀏覽器禁止的,可是服務端並不由止。使用proxyTable的原理就是將域名發送給本地的服務器,再由本地的服務器去請求真正的服務器。json
打開config/index.js,修改dev裏的proxyTableapi
proxyTable:{ '/': { target: 'http://www.xxx.cn/api', //你要訪問的服務器域名 changeOrigin: true, //容許跨域 pathRewrite: { '^/': '' } } }
當你在別的頁面請求時只要是/,你只須要/xx/xxx 它就會幫你處理成 http://www.xxx.cn/xx/xxx。
假如項目須要請求兩個不一樣的域名,proxytable在上面的基礎上再增長,當請求時/json/xx/xxx開頭的最後都會轉換成http://www.aaa.cn/xx/xxx跨域
'/json': { target: 'http://www.aaa.cn/', //你要訪問的服務器域名 changeOrigin: true, //容許跨域 pathRewrite: { '^/json': '' } }
但實際上接口是沒有json的,這只是你用來區分請求的一個別名,這時pathRewrite就能夠將/json去掉瀏覽器
生產環境
找到config/pro.env.js服務器
module.exports = { NODE_ENV: '"production"', API_ROOT: '"http://www.xxx.cn/"' }
在config目錄下新建api.js文件url
const root = process.env.API_ROOT; //在開發模式下爲會調用代理 export const getList = root + '/list'
這樣配置後你能夠直接在組件寫請求的url不需再判斷處於哪一個模式下,均可以跨域請求。代理