1.1、使用proxyTable代理
文件路徑如下,在項目根目錄下的config文件夾中的index.js中
配置代碼如下
dev{ proxyTable: { '/api': { target: 'http://192.168.0.1:200', // 要代理的域名 changeOrigin: true,//允許跨域 pathRewrite: { '^/api': '' // 這個是定義要訪問的路徑,名字隨便寫 } } }
使用時代碼
// /api/getMenu相當於*http://192.168.0.1:200/getMenu // /api相當於http://192.168.0.1:200 this.$http.get("/api/getMenu", { } .then(res => { }) .catch(function(error) { });
1.2、注意事項
以上面代碼設置的為例,會把請求中所有帶有/api字段的都替換掉,例如api/getMenu/api,前后兩個都會被替換,導致404等錯誤,在代理數量比較多的時候容易出現這個問題。
2、proxyTable原理
瀏覽器是禁止跨域的,但是服務端不禁止,在本地運行npm run dev等命令時實際上是用node運行了一個服務器,因此proxyTable實際上是將請求發給自己的服務器,再由服務器轉發給后台服務器,做了亦曾代理,因為不會出現跨域問題。