VUE 更好的 ajax 上傳處理 axios.js實(shí)現(xiàn)代碼
vue更新到2.0之后,作者就宣告不再對(duì)vue-resource更新,而是推薦的axios,前一段時(shí)間用了一下,現(xiàn)在說(shuō)一下它的基本用法。
首先就是引入axios,如果你使用es6,只需要安裝axios模塊之后
import axios from 'axios'; //安裝方法 npm install axios //或 bower install axios
當(dāng)然也可以用script引入
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
axios提供了一下幾種請(qǐng)求方式
axios.request(config) axios.get(url[, config]) axios.delete(url[, config]) axios.head(url[, config]) axios.post(url[, data[, config]]) axios.put(url[, data[, config]]) axios.patch(url[, data[, config]])
這里的config是對(duì)一些基本信息的配置,比如請(qǐng)求頭,baseURL,當(dāng)然這里提供了一些比較方便配置項(xiàng)
//config import Qs from 'qs' { //請(qǐng)求的接口,在請(qǐng)求的時(shí)候,如axios.get(url,config);這里的url會(huì)覆蓋掉config中的url url: '/user', // 請(qǐng)求方法同上 method: 'get', // default // 基礎(chǔ)url前綴 baseURL: 'https://some-domain.com/api/', transformRequest: [function (data) { // 這里可以在發(fā)送請(qǐng)求之前對(duì)請(qǐng)求數(shù)據(jù)做處理,比如form-data格式化等,這里可以使用開頭引入的Qs(這個(gè)模塊在安裝axios的時(shí)候就已經(jīng)安裝了,不需要另外安裝) data = Qs.stringify({}); return data; }], transformResponse: [function (data) { // 這里提前處理返回的數(shù)據(jù) return data; }], // 請(qǐng)求頭信息 headers: {'X-Requested-With': 'XMLHttpRequest'}, //parameter參數(shù) params: { ID: 12345 }, //post參數(shù),使用axios.post(url,{},config);如果沒(méi)有額外的也必須要用一個(gè)空對(duì)象,否則會(huì)報(bào)錯(cuò) data: { firstName: 'Fred' }, //設(shè)置超時(shí)時(shí)間 timeout: 1000, //返回?cái)?shù)據(jù)類型 responseType: 'json', // default }
有了配置文件,我們就可以減少很多額外的處理代碼也更優(yōu)美,直接使用
axios.post(url,{},config) .then(function(res){ console.log(res); }) .catch(function(err){ console.log(err); }) //axios請(qǐng)求返回的也是一個(gè)promise,跟蹤錯(cuò)誤只需要在最后加一個(gè)catch就可以了。 //下面是關(guān)于同時(shí)發(fā)起多個(gè)請(qǐng)求時(shí)的處理 axios.all([get1(), get2()]) .then(axios.spread(function (res1, res2) { // 只有兩個(gè)請(qǐng)求都完成才會(huì)成功,否則會(huì)被catch捕獲 }));
最后還是說(shuō)一下配置項(xiàng),上面講的是額外配置,如果你不想另外寫也可以直接配置全局
axios.defaults.baseURL = 'https://api.example.com'; axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; //當(dāng)然還可以這么配置 var instance = axios.create({ baseURL: 'https://api.example.com' });
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue使用Axios做ajax請(qǐng)求詳解
- 在Vue組件化中利用axios處理ajax請(qǐng)求的使用方法
- vue axios 在頁(yè)面切換時(shí)中斷請(qǐng)求方法 ajax
- vue結(jié)合axios與后端進(jìn)行ajax交互的方法
- vue 組件的封裝之基于axios的ajax請(qǐng)求方法
- vue項(xiàng)目使用axios發(fā)送請(qǐng)求讓ajax請(qǐng)求頭部攜帶cookie的方法
- Vue官方推薦AJAX組件axios.js使用方法詳解與API
- Vue CLI項(xiàng)目 axios模塊前后端交互的使用(類似ajax提交)
- Vue通過(guò)axios發(fā)送ajax請(qǐng)求基礎(chǔ)演示
相關(guān)文章
Vue3+TS實(shí)現(xiàn)語(yǔ)音播放組件的示例代碼
這篇文章主要介紹了如何利用Vue+TS實(shí)現(xiàn)一個(gè)簡(jiǎn)易的語(yǔ)音播放組件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定的幫助,需要的可以參考一下2022-03-03element-ui?form表單的動(dòng)態(tài)rules校驗(yàn)功能實(shí)現(xiàn)
在vue項(xiàng)目中,有時(shí)候可能會(huì)用到element-ui?form表單的動(dòng)態(tài)rules校驗(yàn),這篇文章主要介紹了element-ui form表單的動(dòng)態(tài)rules校驗(yàn),我們可以巧妙的運(yùn)用element-ui form表單里面form-item的校驗(yàn)規(guī)則來(lái)處理,本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07Vue實(shí)現(xiàn)自動(dòng)檢測(cè)以及版本的更新
當(dāng)用戶在當(dāng)前站點(diǎn)停留時(shí)間比較長(zhǎng),中途站點(diǎn)進(jìn)行升級(jí)更新之后,用戶如果不刷新頁(yè)面就任然停留在舊的頁(yè)面里,如何讓用戶收到一個(gè)提示,引導(dǎo)用戶進(jìn)行更新操作呢?下面給大家介紹如何站點(diǎn)更新如何在生產(chǎn)環(huán)境提示用戶更新,進(jìn)行頁(yè)面刷新操作,核心原理其實(shí)很簡(jiǎn)單2023-03-03示例vue 的keep-alive緩存功能的實(shí)現(xiàn)
這篇文章主要介紹了示例vue 的keep-alive緩存功能的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Vue3項(xiàng)目打包后部署到服務(wù)器 請(qǐng)求不到后臺(tái)接口解決方法
在本篇文章里小編給大家整理了關(guān)于Vue3項(xiàng)目打包后部署到服務(wù)器 請(qǐng)求不到后臺(tái)接口解決方法,有需要的朋友們可以參考下。2020-02-02Vue3中echarts無(wú)法縮放的問(wèn)題及解決方案
很多朋友在使用vue3+echarts5技術(shù)時(shí)會(huì)遇到echarts無(wú)法綻放的問(wèn)題,今天小編就給大家分享下問(wèn)題描述及解決方案,感興趣的朋友跟隨小編一起看看吧2022-11-11