Vue proxyTable配置多個介面地址,解決跨域的問題
阿新 • • 發佈:2020-09-13
最開始的時候,因為請求後臺出現跨域問題。
查詢資料配置proxyTable,解決跨域問題。如下圖所示:
axios請求頁面:
this.$axios.post('/api/weblogin/login',data).then(res=>{ console.log(res) })
後面遇到需要連線不同的介面域名,我在proxyTable裡增加了一個apiGas。axios請求存在獲取得到api但是不能獲取apiGas(提示請求資源不存在)。
proxyTable: { '/api': { target: 'http://',// 介面域名 changeOrigin: true,//是否跨域 pathRewrite: { '^/api': '/bsgzf/api/auth/',//需要rewrite的,},'/apiGas': { target: 'http://',//是否跨域 pathRewrite: { '^/apiGas':'/bsgzf/api/gas/' } },
查找了很多資料都沒有具體的解決方法,偶然在一個相同的問題下發現一個回覆,讓把這兩個連結位置換一下,抱著試一試的態度換了,重新執行,結果兩個都可以獲取了。不知道什麼原理???有知道的請指教!!!
正解:
proxyTable: { '/apiGas': { target: 'http://','/api': { target: 'http://',
補充知識:Vue裡的proxyTable解決跨域,api介面管理
本文單純的介紹Vue專案中介面的集中管理以及跨域的解決方法。
1.webpack裡的proxyTable設定跨域:config->index.js
module.exports = { dev: { assetsSubDirectory: 'static',assetsPublicPath: '/',proxyTable: { '/api':{ target:'http://localhost:80',//這裡配置的是 請求介面的域名 // secure: false,// 如果是https介面,需要配置這個引數 changeOrigin: true,// 如果介面跨域,需要進行這個引數配置 pathRewrite:{ '^/api':'' //路徑重寫,這裡理解成用'/api'代替target裡面的地址. } } },}
2.設定api
2.1檔案目錄
2.2 api.js 編碼
import axios from 'axios' axios.defaults.baseURL = '/api'; axios.defaults.headers.post['Content-Type'] = 'application/json;charset=utf-8'; axios.defaults.withCredentials = true //介面自定義 //修改使用者資訊介面 export const updateOneUser = params => { return axios.post('/anta/anta-back/src/php/updateUser.php',params) .then(res => res.data) };
3.元件中引用
import {updateOneUser} from "../../api/api" methods:{ //給後臺傳送資料 var params = new URLSearchParams(); params.append('userphone',this.watchStudentInfo.userphone); params.append('userpass',this.watchStudentInfo.userpass); console.log(params) updateOneUser(params).then(data=>{ //後臺返回的資料 if(data==1){ //新增成功 this.$message.success('修改成功') }else{ //失敗 this.$message.success('修改失敗') } }).catch(error=>{ this.$message.success('修改失敗') }) }
以上這篇Vue proxyTable配置多個介面地址,解決跨域的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。