欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue2中使用axios及axios攔截器的配置教程

 更新時間:2023年05月08日 11:36:47   作者:。Idea  
眾所周知Axios是一個基于promise的HTTP庫,可以用在瀏覽器和 node.js中,下面這篇文章主要給大家介紹了關(guān)于vue2中使用axios及axios攔截器的配置的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、vue2項目中如何實現(xiàn)異步請求

1、axios:是一個基于Promise的網(wǎng)絡(luò)請求庫。

既可以在node.js(服務(wù)器端)使用,也可以在瀏覽器端使用

(1)在node.js中使用的原生的http模塊

(2)在瀏覽器中使用的XMLHttpRequest

2、vue中的使用方法

(1)安裝:npm install axios

? (2)引用方法: ? 

A、原生的方式(不推薦使用)

  axios({
      url: 'http://localhost:8089/students/test',  //遠(yuǎn)程服務(wù)器的url
      method: 'get' //請求方式
    }).then(res=>{
      this.students = res.data
    }).catch(e=>{
      console.log(e)
    })
//缺點:每個使用axios的組件都需要導(dǎo)入

強(qiáng)調(diào):axios對服務(wù)器端數(shù)據(jù)的封裝

? res.config:響應(yīng)信息的配置情況

? res.data:響應(yīng)的數(shù)據(jù)

? res.headers:響應(yīng)頭信息(信息的大小、信息的類型)

? res.request:異步的請求對象(XMLHttpRequest)

? res.status:請求-響應(yīng)的狀態(tài)碼(200)

? res.statusText:請求-響應(yīng)狀態(tài)碼對應(yīng)的文本信息

B、在項目的main.js文件中導(dǎo)入axios,將其寫入Vue的原型中(推薦使用)

//該文件是腳手架項目中的main.js
import axios from "axios";
Vue.prototype.$http = axios //在Vue的原型上添加一個$http屬性,該屬性保存了axios
axios.defaults.baseURL = 'http://localhost:8089'

 在組件中通過this.$http的方式來使用

this.$http.get('http://localhost:8089/students/test').then(res=>{
          this.students = res.data
}).catch(e=>{
          console.log(e)
})

缺點:只能在vue2中使用,vue3中不能用 C、將axios單獨封裝到某個配置文件中(在配置文件中單獨封裝axios實例)—— (推薦使用)

在\src\assets靜態(tài)資源文件夾下創(chuàng)建axios配置文件

//配置文件:axiosapi.js
import axios from "axios";
const axiosapi = axios.create({
    baseURL: 'http://localhost:3000', //基礎(chǔ)的服務(wù)器地址
    timeout: 5000  //連接超時的時間(單位是毫秒)
})
export default  axiosapi  //axiosapi是axios的實例

在組件中使用如下:

import $http  from '../config/axiosapi'  //$http是在導(dǎo)入時自定義的命名可變的
$http.get('/students/test').then(res=>{
          this.students = res.data
}).catch(e=>{
          console.log(e)
})

優(yōu)點:既可以在Vue2中使用,也可以在Vue3中使用

3、axios中不同請求方式向服務(wù)器提交數(shù)據(jù)的格式:

(1)get方式請求:服務(wù)器端通過 req.query.參數(shù)名 來接收

? 第一種:直接將請求參數(shù)綁在url地址上。

 第二種:通過params方式進(jìn)行提交

(2)post方式請求:服務(wù)器端通過 req.body.參數(shù)名 來接收 

(3)put方式請求:和post方式一樣    // 傳參的方式

? (4)delete方式請求:和get方式一樣   // 傳參的方式

二、axios攔截器的配置

1、axios模塊的作用:是對基于http請求的封裝。

在瀏覽器對異步請求對象XMLHttpRequest進(jìn)行封裝

2、攔截器: ?

(1)請求攔截器:對客戶端發(fā)起的請求進(jìn)行統(tǒng)一的前期處理

                                (token、時間戳、cookie等) ?

(2)響應(yīng)攔截器:對服務(wù)器端響應(yīng)給客戶端的數(shù)據(jù)統(tǒng)一進(jìn)行處理之后再發(fā)給客戶端

axios配置文件如下:

import axios from "axios";
 
//1. 創(chuàng)建axios實例,配置基礎(chǔ)路徑
const axiosapi = axios.create({
    baseURL:'http://localhost:3000',
    timeout:5000,//連接超時
});
 
//2. 定義請求攔截器:給所有請求都帶上token
axiosapi.interceptors.request.use((req)=>{
    let token = sessionStorage.getItem('Auth');//獲取頁面存儲的token
    if (token) {
        req.headers['Auth'] = token;//將token添加至請求頭對象的Auth屬性中
    }
    return req;
},(error)=>{//返回錯誤的信息
    return Promise.reject(error);
});
 
//3. 定義響應(yīng)攔截器: 對服務(wù)器響應(yīng)客戶端的數(shù)據(jù)進(jìn)行統(tǒng)一處理
axiosapi.interceptors.response.use(res=>{
    //3.1 對響應(yīng)數(shù)據(jù)進(jìn)行處理
    let data = res.data;
    let code = data.code;
    if(code === 200){
        //請求成功時,將res.data對象返回給響應(yīng)對象
        return data;
    } else {
        return Promise.reject(data);
    }
},(error)=>{
    return Promise.reject(error);
})
 
//4. 導(dǎo)出axios實例,供組件異步請求使用
export default axiosapi;

總結(jié)

到此這篇關(guān)于vue2中使用axios及axios攔截器的配置的文章就介紹到這了,更多相關(guān)vue2 axios攔截器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue路由相對路徑跳轉(zhuǎn)方式

    vue路由相對路徑跳轉(zhuǎn)方式

    這篇文章主要介紹了vue路由相對路徑跳轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Vue2.0利用vue-resource上傳文件到七牛的實例代碼

    Vue2.0利用vue-resource上傳文件到七牛的實例代碼

    本篇文章主要介紹了Vue2.0利用vue-resource上傳文件到七牛的實例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07
  • vue新手入門出現(xiàn)function () { [native code] }錯誤的解決方案

    vue新手入門出現(xiàn)function () { [native code]&nbs

    這篇文章主要介紹了vue新手入門出現(xiàn)function () { [native code] }錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue的異步渲染axios問題

    Vue的異步渲染axios問題

    這篇文章主要介紹了Vue的異步渲染axios問題,具有很好的參考價值,希望對大家有所幫助。
    2023-03-03
  • vue 全局封裝loading加載教程(全局監(jiān)聽)

    vue 全局封裝loading加載教程(全局監(jiān)聽)

    這篇文章主要介紹了vue 全局封裝loading加載教程(全局監(jiān)聽),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue雙向綁定的簡單實現(xiàn)

    vue雙向綁定的簡單實現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了vue雙向綁定的簡單實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • useEffect理解React、Vue設(shè)計理念的不同

    useEffect理解React、Vue設(shè)計理念的不同

    這篇文章主要為大家介紹了useEffect理解React、Vue設(shè)計理念的不同詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Vue from-validate 表單驗證的示例代碼

    Vue from-validate 表單驗證的示例代碼

    本篇文章主要介紹了Vue from-validate 表單驗證的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Vue使用axios發(fā)送請求簡單實現(xiàn)代碼

    Vue使用axios發(fā)送請求簡單實現(xiàn)代碼

    axios是一個基于Promise的,發(fā)送http請求的一個工具庫,并不是vue中的第三方插件,使用時不能通過“Vue.use()”安裝插件,需要在原型上進(jìn)行綁定
    2023-04-04
  • Vuex modules模式下mapState/mapMutations的操作實例

    Vuex modules模式下mapState/mapMutations的操作實例

    這篇文章主要介紹了Vuex modules 模式下 mapState/mapMutations 的操作實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論