欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

axios封裝支持json和表單

夏志豪2年前10瀏覽0評論

axios是一款強大的基于Promise的HTTP請求庫,被廣泛應用于前端開發中。為了更好地使用axios,我們可以進行封裝來支持JSON和表單格式。下面我們來通過代碼來實現這個功能。

import axios from 'axios'
// 配置默認的請求頭部信息
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
// 添加請求攔截器
axios.interceptors.request.use(
function (config) {
if (config.method === 'post') {
// 如果是表單格式,則將請求數據做轉換處理
config.transformRequest = [function (data) {
let str = ''
for (let key in data) {
if (data.hasOwnProperty(key)) {
str += key + '=' + data[key] + '&'
}
}
return str.slice(0, -1)
}]
}
return config
},
function (error) {
return Promise.reject(error)
}
)
// 封裝POST方法
export function post (url, params, contentType = 'json') {
// 根據contentType設置請求的Content-Type頭部信息
if (contentType === 'json') {
axios.defaults.headers.post['Content-Type'] = 'application/json'
} else if (contentType === 'form') {
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
}
return new Promise((resolve, reject) =>{
axios
.post(url, params)
.then((res) =>{
resolve(res.data)
})
.catch((err) =>{
reject(err)
})
})
}

在這段代碼中,我們通過攔截器來對表單格式做了轉換處理,同時封裝了POST方法來支持JSON和表單格式。使用這個封裝的POST方法時,可以通過contentType參數來指定請求的Content-Type類型,默認為JSON格式。