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