axios請求二次封裝(攔截器配置)

封裝過程中遇到的問題簡單記錄下:1、post請求參數拼接到請求鏈接后面,檢查了一下發現post請求到參數有問題修改如下

新建server.js文件

import axios from "axios"

import { Toast } from 'vant'

import qs from 'qs'

let serve = axios.create({

timeout: 10000,

// baseUrl: process.env.API,

})

serve.interceptors.request.use((config)=>{

console.log('config',config)

config.data = JSON.stringify(config.data); //數據轉化,也可以使用qs轉換

config.headers = {

'Content-Type':'application/json' //配置請求頭

}

// let token = ''

// if(token) {

// config.headers.token = token

// }

//config.data = qs.stringify(config.data)

return config

},err=>{

console.log('err',err)

// return Promise.reject(err)

})

serve.interceptors.response.use((response)=>{

let code = response.data.code

if(response.status==200) {

return response

}else {

Toast(response.data.message)

}

},err=>{

if(err && err.response) {

let res = err.response.status

switch(res) {

case 400:

err.message = '錯誤請求';

break;

case 401:

err.message = '未授權,請重新登錄';

break;

case 403:

err.message = '拒絕訪問';

break;

case 404:

err.message = '請求資源不存在';

break;

case 405:

err.message = '請求路徑出錯';

break;

case 500:

err.message = '服務端出錯';

break;

case 502:

err.message = '網絡出錯';

break;

case 503:

err.message = '服務不可用';

break;

case 504:

err.message = '網絡超時';

break;

}

}else {

err.message = '連接服務器失敗'

}

Toast(err.message)

return Promise.reject(err.response)

})

export default serve

httpRequest.js文件

import Vue from 'vue'

import VueRouter from 'vue-router'

import serve from './serve.js'

const httpRequest = {

get(url,params) {

const config = {

method: 'get',

url:url

}

if(params) {

config.params = params

}

return serve(config)

},

post(url,params) {

const config = {

method: 'post',

url:url

}

if(params) {

config.data = params

}

return serve(config)

},

put(url,params) {

const config = {

method: 'put',

url:url

}

if(params) {

config.params = params

}

return serve(config)

}

}

export default httpRequest

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容