1. 程式人生 > 程式設計 >Vue專案前後端聯調(使用proxyTable實現跨域方式)

Vue專案前後端聯調(使用proxyTable實現跨域方式)

vue本地專案除錯線上接口出現跨域問題

使用方法:vue在配置檔案中提供了proxyTable來設定跨域,在config資料夾的index.js檔案中

dev: { //開發環境下

  // 靜態資原始檔夾
  assetsSubDirectory: 'static',// 釋出路徑
  assetsPublicPath: '/',// 代理配置表,在這裡可以配置特定的請求代理到對應的API介面
  // 例如將'localhost:8080/api/xxx'代理到'http://xxxxxxx.com/xxx'
  proxyTable: {
   '/api': {
    target: 'http://xxxxxx.com',// 介面的域名
    // secure: false,// 如果是https介面,需要配置這個引數
    changeOrigin: true,// 如果介面跨域,需要進行這個引數配置
    pathRewrite: {
     '^/api': '',// 這種介面配置出來 http://xxxxxx.com:8080/xxx
    }
   }
  }
}

關於pathRewrite中'^/api'的作用:

用代理,首先你得有一個標識,告訴他你這個連線要用代理. 不然的話,可能你的 html,css,js這些靜態資源都跑去代理. 所以我們只要介面用代理,靜態檔案用本地。

'/api': {},就是告訴node,我介面只要是'/api'開頭的才用代理.所以你的介面就要這麼寫 /api/xx/xx. 最後代理的路徑就是 http://xxxxxx.com/api/xx/xx.

可是不對啊,我正確的介面路徑裡面沒有/api啊. 所以就需要 pathRewrite,用''^/api'':'',把'/api'去掉,這樣既能有正確標識,又能在請求介面的時候去掉api

補充知識:vue2./vue.3.x實現跨域(proxytable/proxy)

vue2.x

config/index.js

proxyTable: {
   '/api': {
    target: 'http://localhost:3000/',// 請求的介面的域名
    // secure: false,// 如果介面跨域,需要進行這個引數配置
    pathRewrite: {
     '^/api': ''
    }
   }
  },

vue3.x

vue.config.js

 module.exports = {
  devServer: {
   proxy: {
    '/api': {
     target: 'http://localhost:8080/',changeOrigin: true,ws: true,pathRewrite: {
      '^/api': '/static/mock'
     }
    }
   }
  }
 }

以上這篇Vue專案前後端聯調(使用proxyTable實現跨域方式)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。