溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue設(shè)置全局訪問接口API地址的方法

發(fā)布時間:2020-08-15 11:55:20 來源:億速云 閱讀:1249 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹vue設(shè)置全局訪問接口API地址的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在使用vue框架進行前后端分離項目開發(fā)時,通常涉及到與后段接口進行交互,平時一般使用比較多的就是用axios來實現(xiàn)調(diào)用后段接口,寫法一般為

 xxx() {
    const _this = this
    axios.get("http://ip:port/xx/xx").then(function (resp) {
          .....//省略
    })
  }

但是有一個比較普遍的問題就是,假如我們后端接口地址改變了,或者是網(wǎng)絡(luò)地址發(fā)生了變化,就需要在上面IP以及端口的位置每一處都需要修改,所以我們需要一個一處設(shè)置 處處可用的配置,如下

在src目錄下新建interface文件夾,新建index.js文件

//配置全局訪問接口地址
let commonUrl = "http://ip:port";
 
let baseUrl = {
  commonUrl
}
export default baseUrl

在main.js中引入上述配置

import api from "./interface/index" Vue.prototype.$api = api.commonUrl

接下來在原axios調(diào)用接口的位置稍作修改即可實現(xiàn)正常調(diào)用接口了

 xx() {
        const _this = this
        axios.get(this.$api + "/xx/xx").then(function (resp) {
            .....
          }
        })
      }

補充知識:vue項目:(全局變量設(shè)置與調(diào)用)API接口封裝 - 代碼篇

vue項目,如何將“API接口” 封裝為“全局變量” ?

1. API全局配置文件【global.vue文件】

<template>
   <div> </div>   
</template>


<!-- API全局變量 -->
<script>  
  // 本地 接口地址
  const localSrc = 'http://192.168.0.103:8444'; 
  // 線上 接口地址
  const serverSrc = 'http://www.xxxxxx.com:8080/jobs-api';

  export default{
    localSrc,
    serverSrc
  }
</script>

<style>
</style>

2. 全局注冊引入文件 【main.js文件】

// 引入API接口文件
import global_ from './components/api/global'//引用文件
Vue.prototype.GLOBAL = global_//掛載到Vue實例上面

3. 如下代碼片段:【注釋1、注釋2、注釋3】

methods: {
   ajaxLoginApi: function (form) {   
  var that=this.form; // 放置指針,便于then操作的獲取    
  console.log("賬號"+that.username+"密碼"+that.pwd);

  // var localPath = 'http://192.168.0.103:8444'; 
    // var ecsPath = 'http://www.1688jobs.com:8080/jobs-api/'
    
    var localPath = this.GLOBAL.localSrc; // 本地 接口地址 【注釋1】
    var serverPath = this.GLOBAL.serverSrc; // 線上 接口地址【注釋2】
    
  axios.post( serverPath + '/login',   // 【注釋3】
     {
    // 'userName':'17681135201',
   // 'userPwd':'123456',
      // 'userType':"2"      
    'userName': this.form.username,
   'userPwd': this.form.pwd,
   'userType':"2"
   },
   {
   headers: {
    'Content-Type':'application/json',
    //'Authorization':'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiI1QUZFRkQ4NTNFNjIwNDIyOEIwNDE3MzdCMDdBNEJCNURDNTBEQjA4OUFCQzBENDM4MDA5RkM4REU4QkMyODkzIiwidXNlck5hbWUiOiIxNzY4MTEzNTIwMSIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS82OC4wLjM0NDAuMTA2IFNhZmFyaS81MzcuMzYiLCJleHAiOjE1NTE5MzYzODQsIm5iZiI6MTU1MTkzNDU4NH0.YgRW-Wnlk_Gz64id_jTocH68oj8DuZuI1WyQBmmrt7c'
   }
   },
  )
  .then(function (response) {
      console.log("response="+response);
      console.log("responseheader="+response.headers);
   var reslutData = response; 
      // console.log(reslutData.data.code);  
      // 登錄賬號和密碼 檢測
      if (reslutData.data.code == 2006) { // 用戶名不存在
       this.$notify.error({
        title: reslutData.data.message,
        duration: 2000
       });
       return false;
      }
      if (reslutData.data.code != 200) { // 登錄失敗
       this.$notify.error({
        title: reslutData.data.message,
        duration: 2000
       });
       return false;
      } else { // 登錄成功

       // 彈框成功提示
       this.$notify({
        title: reslutData.data.message,
        // message: '正在跳轉(zhuǎn)中···',
        type: 'success',
        duration: 2000
       });

       console.log("token=" + reslutData.data.data.token)
       // token寫入本地客戶端存儲
       localStorage.setItem("token",reslutData.data.data.token);
       // token獲取本地客戶端存儲
       // var key = localStorage.getItem("token");
       // console.log("key=" + key)

       // 成功之后執(zhí)行跳轉(zhuǎn)  this.$router.replace  
       this.$router.replace('/search');

      }
      
   
  }.bind(this))
  .catch(function (error) {
   console.log("請求失敗"+error);
  });

  },

以上是vue設(shè)置全局訪問接口API地址的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI