摘要:但是如果你想以的方式傳參,則需要做一點(diǎn)改變參考這里注意如果你的請(qǐng)求方法是,又規(guī)定了參數(shù)格式是,則必須要使用下面這些方法中的一種。
axios是vue官方推薦的http庫,詳情見官方中文文檔。
安裝:npm install axios
安裝依賴:
npm install --save axios vue-axios
配置模板:
//main.js中 import Vue from "vue" import axios from "axios" import VueAxios from "vue-axios" Vue.use(VueAxios, axios) //然后你就能愉快地使用axios啦
如果不想這樣安裝,也可以快速引用它:
如何使用:有好幾種方法,get post delete put patch 什么的,不過我通常就用get和post兩種,所以我就記錄這種中的使用方法了。
let data = { //要傳的參數(shù) "loginName":"123456", "passWord":"123456", "updateSign":"52af3ce8a82f62707789fe00899ed3f0", "isLogin":"1" } //post請(qǐng)求 this.axios.post("/api/user/sickUserLogin/3",data) .then((response) { console.log(response); }) .catch(function (error) { console.log(error); }); //get請(qǐng)求 this.axios.get("/api/user/sickUserLogin/3",{params:data}) .then((response) => { console.log(response.data); console.log(response); }) .catch(function (error) { console.log(error); });
這里要注意一點(diǎn)的是:get和post請(qǐng)求的傳參方式是不一樣的,原因可以參考這里
axios.get("url", {params: data}); axios.post("url", data); //get請(qǐng)求的參數(shù)是拼接url字符串傳遞的; //post請(qǐng)求的參數(shù)是通過data請(qǐng)求主體傳遞的;
參數(shù)格式:
axios的默認(rèn)參數(shù)格式是json字符串,傳參方式就像上面那個(gè)demo一樣即可。但是如果你想以key:value的方式傳參,則需要做一點(diǎn)改變:參考這里
注意:如果你的請(qǐng)求方法是post,又規(guī)定了參數(shù)格式是application/x-www-form-urlencoded,則必須要使用下面這些方法中的一種。(我在寫demo的時(shí)候測(cè)試了一下,post方法下json傳參格式是失敗的,必須要改成鍵值對(duì)的格式,否則會(huì)報(bào)錯(cuò))
主要推薦這種寫法:
var qs = require("qs"); axios.post("/foo", qs.stringify({ "bar": 123 }));
這個(gè)方法需要先安裝一下qs:
npm install qs import qs from "qs" Vue.prototype.qs = qs; //全局定義,使用的時(shí)候用this.qs.stringify(data)即可
還有另一種寫法淺顯易懂:
var params = new URLSearchParams(); //這種寫法不需要引入qs params.append("collectId","16"); //你要傳給后臺(tái)的參數(shù)值 key/value params.append("collectTye","2"); params.append("isCancel","2",); this.$axios({ method: "post", url:url, data: params }).then((res)=>{ })
設(shè)置axios的baseURL:
//在main.js中: axios.defaults.baseURL = "http://api.eeesys.com:18087/"; //這些具體的寫法可以多看幾遍文檔,就懂了,我也不是很懂 //根據(jù)我的測(cè)驗(yàn),這樣寫了之后,請(qǐng)求會(huì)忽略掉proxyTable中的配置,直接請(qǐng)求這個(gè)地址,這樣在生產(chǎn)環(huán)境下就可以跨域了,不知道是不是這樣的
重新定義一個(gè)axios實(shí)例:
const $axios = axios.create({ baseURL: "http://api.eeesys.com:18087/", timeout: 5000, headers: { "Content-Type": "application/x-www-form-urlencoded" } }); // 初始化默認(rèn)post header,這里規(guī)定了post請(qǐng)求的傳參格式是application/x-www-form-urlencoded //如果不這樣寫,后臺(tái)接收到的參數(shù)是null $axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"; Vue.prototype.$axios = $axios;
這樣就可以在代碼中使用自己定義的axios實(shí)例,沒有配置的屬性會(huì)繼承l(wèi)ib/defaults.js文件中的設(shè)置
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/94303.html
摘要:我們先來看看構(gòu)造函數(shù)構(gòu)造函數(shù)就是用來實(shí)現(xiàn)攔截器的,這個(gè)構(gòu)造函數(shù)原型上有個(gè)方法。關(guān)于源碼,其實(shí)是比較簡單的,都是用來操作該構(gòu)造函數(shù)的實(shí)例屬性的。存放攔截器方法,數(shù)組內(nèi)每一項(xiàng)都是有兩個(gè)屬性的對(duì)象,兩個(gè)屬性分別對(duì)應(yīng)成功和失敗后執(zhí)行的函數(shù)。 Axios源碼分析 - XHR篇 文章源碼托管在github上,歡迎fork指正! axios 是一個(gè)基于 Promise 的http請(qǐng)求庫,可以用在瀏覽...
摘要:返回狀態(tài)碼,如果返回或者設(shè)置成,將會(huì)其他的將。一些錯(cuò)誤是在設(shè)置請(qǐng)求時(shí)觸發(fā)的你可以使用設(shè)置選項(xiàng)自定義狀態(tài)碼的錯(cuò)誤范圍。 axios 版本:v0.18.0 0.18.0的版本更新有一段時(shí)間了,使用起來跟原先基本沒有什么變化。但是增加了一些功能,例如錯(cuò)誤處理的辨別,于07-06-2018重新翻譯和校驗(yàn)了該翻譯,更正了一些錯(cuò)別字和表達(dá)不準(zhǔn)的地方,但是難免仍有錯(cuò)誤,歡迎指出。 由于工作需要,個(gè)人...
摘要:也就是說我們手動(dòng)在原型身上掛載無法識(shí)別到。這樣就完美避免了報(bào)錯(cuò)的問題。說明使用進(jìn)行開發(fā)的過程中,會(huì)遇到各種各樣的報(bào)錯(cuò)問題,希望記錄下來,避免下次再次踩坑,也希望幫助其他人。 Vue+Typescript中在Vue上掛載axios使用時(shí)報(bào)錯(cuò) 在vue項(xiàng)目開發(fā)過程中,為了方便在各個(gè)組件中調(diào)用axios,我們通常會(huì)在入口文件將axios掛載到vue原型身上,如下:main.ts import...
摘要:做項(xiàng)目過程中,需要用到后臺(tái)模擬數(shù)據(jù),在機(jī)緣巧合下發(fā)現(xiàn)了,在學(xué)習(xí)使用的過程中又偶遇了。 做項(xiàng)目過程中,需要用到后臺(tái)模擬數(shù)據(jù),在機(jī)緣巧合下發(fā)現(xiàn)了mock,在學(xué)習(xí)使用的過程中又偶遇了axios-mock-adapter。現(xiàn)在將實(shí)例展示如下: 準(zhǔn)備 實(shí)例是建立在vue-cli的基礎(chǔ)上實(shí)現(xiàn)需要提前安裝的插件有:axios:npm install axio --savemockjs:npm ins...
摘要:表示應(yīng)該使用基礎(chǔ)驗(yàn)證,并提供數(shù)據(jù)。表示服務(wù)器響應(yīng)的數(shù)據(jù)類型,可以是,,,,,,默認(rèn)值是承載的值的頭的名稱。對(duì)原生進(jìn)度事件的處理定義允許的響應(yīng)內(nèi)容的最大尺寸?;菊J(rèn)證的過程。后者將優(yōu)先于前者。 Axios說明 Axios是一個(gè)基于promise的HTTP庫,可以用在瀏覽器和node.js中。 安裝 使用npm: $ npm install axios 使用bower $ bower in...
閱讀 1089·2021-10-14 09:42
閱讀 1386·2021-09-22 15:11
閱讀 3295·2019-08-30 15:56
閱讀 1257·2019-08-30 15:55
閱讀 3623·2019-08-30 15:55
閱讀 897·2019-08-30 15:44
閱讀 2033·2019-08-29 17:17
閱讀 2081·2019-08-29 15:37