1. 程式人生 > 程式設計 >Vue proxyTable配置多個介面地址,解決跨域的問題

Vue proxyTable配置多個介面地址,解決跨域的問題

最開始的時候,因為請求後臺出現跨域問題。

查詢資料配置proxyTable,解決跨域問題。如下圖所示:

Vue 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檔案目錄

Vue proxyTable配置多個介面地址,解決跨域的問題

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配置多個介面地址,解決跨域的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。