vue中axios的get請求和post請求的傳參方式、攔截器示例代碼
一、GET 和 POST 傳參方式的優(yōu)缺點
1.post更安全(不會作為url的一部分,不會被緩存,保存在服務器日志,以及瀏覽器瀏覽記錄中)
2.post發(fā)送的數(shù)據(jù)量更大(get有url長度限制)
3.post能發(fā)送更多的數(shù)據(jù)類型(get只能發(fā)送ASCII字符)
4.post比get慢
5.Post是向服務器提交數(shù)據(jù)的一種請求,get是向服務器發(fā)索取數(shù)據(jù)的一種請求。
5.Post是向服務器提交數(shù)據(jù)的一種請求,get是向服務器發(fā)索取數(shù)據(jù)的一種請求。
7.post請求包含更多的請求頭
8.post在真正接受數(shù)據(jù)之前會先將請求頭發(fā)送給服務器進行確認,然后才真正發(fā)送數(shù)據(jù)
二、GET 和 POST 傳參方式的請求過程
post請求的過程:
1.瀏覽器請求tcp連接(第一次握手)
2.服務器答應進行tcp連接(第二次握手)
3.瀏覽器確認,并發(fā)送post請求頭(第三次握手,這個報文比較小,所以http會在此時進 行第一次數(shù)據(jù)發(fā)送)
4.服務器返回100 continue響應
5.瀏覽器開始發(fā)送數(shù)據(jù)
6.服務器返回200 ok響應
get請求的過程
1.瀏覽器請求tcp連接(第一次握手)
2.服務器答應進行tcp連接(第二次握手)
3.瀏覽器確認,并發(fā)送get請求頭和數(shù)據(jù)(第三次握手,這個報文比較小,所以http會在此時進行第一次數(shù)據(jù)發(fā)送)
4.服務器返回200 ok響應。
三、axios使用
1、axios的安裝
$ npm install axios // 使用npm $ bower install axios // 使用bower <script src="https://unpkg.com/axios/dist/axios.min.js"></script> // 通過cdn直接調用
2、axios的引入
import axios from 'axios';
3、get
第一種參(參數(shù)在url上)
axios.get('/adate?id=123').then(res => {
console.log(res);
})
第二種傳參(通過param選項傳遞參數(shù))
axios.get('/adate?id=123',{
params: {
id: 1
}
}).then(res => {
console.log(res);
})
4、post
axios.post('/api/axios', {
uname: 'lisi',
pwd: 123
}).then(ret => {
console.log(ret.data)
})
四、攔截器
1、請求攔截器
import axios from 'axios'
const service = axios.create({
baseURL: '基礎路徑',
timeout: 15000
})
//添加請求攔截器 請求接口統(tǒng)一添加token
service.interceptors.request.use(
config =>{
// 成功的回調
},
error =>{
// 失敗的回調
}
)
export default service
2、響應攔截器
import axios from 'axios'
const service = axios.create({
baseURL: '基礎路徑',
timeout: 15000
})
// 響應攔截器
service.interceptors.response.use(
response => {
// 成功回調
},
error => {
// 失敗回調
}
)
export default service
3、案例
/**
* 請求封裝
*/
import axios from 'axios';
import configUrl from './url.js';
import store from '../store';
const service = axios.create({
baseURL: configUrl.baseURL,
// withCredentials: true, // 當跨域請求時發(fā)送cookie
timeout: 15000 // 請求超時
});
//添加請求攔截器 請求接口統(tǒng)一添加token
service.interceptors.request.use(
config =>{
config.headers.token = store.getters.token || ''; //請求添加token
return config;
},
error =>{
return Promise.reject(error);
}
)
// 響應攔截器
service.interceptors.response.use(
response => {
//如果接口返回token,替換本地舊token
if (response.headers.token) {
sessionStorage.setItem("token", response.headers.token);
}
//自定義設置后臺返回code對應的響應方式
if (response.data.code == 203) { // 未登錄或登錄超時
return Promise.reject(new Error('登錄超時'));
} else { //接口正常,返回數(shù)據(jù)
return response;
}
},
error => {
if (error.message) {
// this.$massage.error('服務器開小差了,請稍后再試!')
//錯誤響應
alert('服務器開小差了,請稍后再試!')
}
return Promise.reject(error);
}
);
//暴露出封裝過的服務
export default service;
到此這篇關于vue中axios的get請求和post請求的傳參方式、攔截器的文章就介紹到這了,更多相關axios get請求和post請求傳參內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue 雙向數(shù)據(jù)綁定的實現(xiàn)學習之監(jiān)聽器的實現(xiàn)方法
這篇文章主要介紹了vue 雙向數(shù)據(jù)綁定的實現(xiàn)學習之監(jiān)聽器的實現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11
vue 彈窗時 監(jiān)聽手機返回鍵關閉彈窗功能(頁面不跳轉)
這篇文章主要介紹了vue 彈窗時 監(jiān)聽手機返回鍵關閉彈窗功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值(頁面不跳轉) ,需要的朋友可以參考下2019-05-05
詳解vue-router2.0動態(tài)路由獲取參數(shù)
本篇文章主要介紹了詳解vue-router2.0動態(tài)路由獲取參數(shù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
vue.js自定義組件實現(xiàn)v-model雙向數(shù)據(jù)綁定的示例代碼
這篇文章主要介紹了vue.js自定義組件實現(xiàn)v-model雙向數(shù)據(jù)綁定的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01

