最近作vue項目,作分頁的功能,使用post給後臺發送數據,使用接口仍是工具(postman)均可獲取數據,惟獨axios獲取不到;通過排除,發現這與axios的post傳參格式有關係;vue
this.$axios({ method: 'post', url:url, params: { seller_id:seller_id } }).then((res)=>{ })
在使用axios時,要注意到配置選項中包含params和data二者,覺得他們是相同的,實則否則。
由於params是添加到url的請求字符串中的,用於get請求。而data(form-data)是添加到請求體(body)中的, 用於post請求。ios
配置以下:
在main.js裏 設置配置,修改Content-Typeaxios
import axios from 'axios'; axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; Vue.prototype.$axios = axios;
Content-Type須配置爲application/x-www-form-urlencoded,以數據量格式進行數據傳輸(不兼容ie)
安裝qs,在 main.js裏引入而且對數據進行序列化app
import axios from 'axios'; import qs from 'qs'; Vue.prototype.$qs = qs;
或者工具
import qs from 'qs'; axios.interceptors.request.use((config) => { config.data = qs.stringify(config.data); return config; }, function(error) { return Promise.reject(error); });
做者:子恆|haley
博客園: http://www.cnblogs.com/mylly/ 版權全部,歡迎保留原文連接進行轉載:)