axios封裝與傳參示例詳解
1.開發(fā)環(huán)境 vue+typescript
2.電腦系統(tǒng) windows10專業(yè)版
3.在開發(fā)的過(guò)程中,我們會(huì)經(jīng)常使用到 axios進(jìn)行數(shù)據(jù)的交互,下面我來(lái)說(shuō)一下,axios封裝和傳參!
4-1:下面結(jié)構(gòu)如下:

4-2:request.js代碼如下:
import axios from 'axios'
import qs from 'qs'
axios.defaults.timeout = 2000000; //響應(yīng)時(shí)間
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; //配置請(qǐng)求頭
// axios.defaults.baseURL = 'http://192.168.137.208:3000/'; //配置接口地址
//POST傳參序列化(添加請(qǐng)求攔截器)
axios.interceptors.request.use((config) => {
//在發(fā)送請(qǐng)求之前做某件事
// config.headers.Accept="appliaction/json,text/plan";
if(config.method === 'post'){
config.data = qs.stringify(config.data);
}
return config;
},(error) =>{
console.log('錯(cuò)誤的傳參')
return Promise.reject(error);
});
// axios.interceptors.response.use((res) => {
// //對(duì)響應(yīng)數(shù)據(jù)做些事
// if (!res.data) {
// return Promise.resolve(res);
// }
// return res;
// }, (error) => {
// console.log(error);
// console.log('網(wǎng)絡(luò)異常')
// return Promise.reject(error);
// });
//返回狀態(tài)判斷(添加響應(yīng)攔截器)
axios.interceptors.response.use((res) =>{
//對(duì)響應(yīng)數(shù)據(jù)做些事
if(!res.data.success){
return Promise.resolve(res);
}
return res;
}, (error) => {
console.log('網(wǎng)絡(luò)異常')
return Promise.reject(error);
});
//返回一個(gè)Promise(發(fā)送post請(qǐng)求)
export function fetchPost(url,param) {
return new Promise((resolve, reject) => {
axios.post(url,param)
.then(response => {
resolve(response);
}, err => {
reject(err);
})
.catch((error) => {
reject(error)
})
})
}
// 返回一個(gè)Promise(發(fā)送get請(qǐng)求)
export function fetchGet(url,param) {
return new Promise((resolve, reject) => {
axios.get(url,{params:param})
.then(response => {
resolve(response)
}, err => {
reject(err)
})
.catch((error) => {
reject(error)
})
})
}
export default {
fetchPost,
fetchGet,
}
//注意:請(qǐng)求頭的配置,決定了傳參的方法和格式,請(qǐng)求頭的配置至關(guān)重要
5.SheBei.ts代碼如下:
import {fetchPost,fetchGet} from '@/utils/request'
export function feng(feng){
return fetchPost('/feng',feng);
}
6.Home.vue請(qǐng)求代碼如下:
mounted(){
let a:any={
"name":"111",
"pass":"000"
}
feng(a).then((res)=>{
console.log(res);
})
}
7.效果如下:

8.在node.js中輸入如下:

//可以看到,接受到了前端傳過(guò)來(lái)的參數(shù)!
9.參數(shù)的傳遞取決于,request.ts中請(qǐng)求頭的配置!
10.請(qǐng)求頭配置如下:
--第一種 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; //請(qǐng)求體中的數(shù)據(jù)會(huì)以普通表單形式(鍵值對(duì))發(fā)送到后端 --第二種 axios.defaults.headers.post['Content-Type'] ='application/json'; // 請(qǐng)求體中的數(shù)據(jù)會(huì)以json字符串的形式發(fā)送到后端 --第三種 axios.defaults.headers.post['Content-Type'] ='multipart/form-data'; // 它會(huì)將請(qǐng)求體的數(shù)據(jù)處理為一條消息,以標(biāo)簽為單元,用分隔符分開。既可以上傳鍵值對(duì),也可以上傳文件
11.使用10第一種,傳參效果如下:

12.使用10第二種,傳參效果如下:

//注意:使用這種方法,需要修改request.ts代碼:

13.使用10第三種,傳參效果如下:

14.本期的教程到了這里就結(jié)束啦,讓我們一起努力走向巔峰!
總結(jié)
到此這篇關(guān)于axios封裝與傳參示例的文章就介紹到這了,更多相關(guān)axios封裝與傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue Spa切換頁(yè)面時(shí)更改標(biāo)題的實(shí)例代碼
本篇文章主要介紹了Vue Spa切換頁(yè)面時(shí)更改標(biāo)題的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
Vue移動(dòng)端項(xiàng)目實(shí)現(xiàn)使用手機(jī)預(yù)覽調(diào)試操作
這篇文章主要介紹了Vue移動(dòng)端項(xiàng)目實(shí)現(xiàn)使用手機(jī)預(yù)覽調(diào)試操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Vue.js遞歸組件實(shí)現(xiàn)組織架構(gòu)樹和選人功能案例分析
這篇文章主要介紹了Vue.js遞歸組件實(shí)現(xiàn)組織架構(gòu)樹和選人功能,本文通過(guò)案例代碼講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
vue純前端使用exceljs導(dǎo)出excel文件方式
本文介紹了如何使用excel.js插件和Vue實(shí)現(xiàn)純前端Excel文件導(dǎo)出,并詳細(xì)步驟包括安裝插件、創(chuàng)建工作簿和工作表、定義列數(shù)據(jù)、設(shè)置樣式、行級(jí)操作、遍歷行和單元格、插入圖片和超鏈接2024-11-11
vue實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
vue3使用富文本編輯器Editor.js的簡(jiǎn)單方法
Editor.js是一個(gè)用于構(gòu)建具有完全可定制化塊結(jié)構(gòu)的現(xiàn)代編輯器的開源庫(kù),它提供了一個(gè)簡(jiǎn)潔、可擴(kuò)展和易于使用的接口,使開發(fā)人員能夠創(chuàng)建擁有豐富內(nèi)容和互動(dòng)性的編輯器,這篇文章主要給大家介紹了關(guān)于vue3使用富文本編輯器Editor.js的簡(jiǎn)單方法,需要的朋友可以參考下2024-04-04
vue使用lottie-web實(shí)現(xiàn)web動(dòng)畫效果
在web端,lottie-web庫(kù)可以解析導(dǎo)出的動(dòng)畫json文件,并將其以svg或者canvas的方式將動(dòng)畫繪制在我們的頁(yè)面上,這篇文章主要介紹了vue使用lottie-web實(shí)現(xiàn)web動(dòng)畫,需要的朋友可以參考下2024-06-06

