共计 1842 个字符,预计需要花费 5 分钟才能阅读完成。
通过向 axios 传递相干配置项(confg 对象),创立 axios 申请:
axios({
method: "post",
url:“/user”,
data: {firstName: "Fred", lastName: "Flintstone"},
params: {id: 1234}
})
axios 申请办法别名
axios.request(config)
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.options(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])
这一段,信息量很大:
比方:axios.post(url[, data[, config]])
axios.post()的第一个参数是 url,第 2 个参数是 data 参数(即 post 的 body),第三个参数是 config 对象。
通过观察,应用别名时,method,url 和 data 都不用在最初一个参数 config 对象 中指定。
axios.all()参数是可迭代对象,array,set 或者 map 等
axios.spread()参数是一个回调函数
axios.create() 参数是一个 config 对象
全局的 axios 默认配置:
axios.defaults.baseURL = "http://www.123.com/"
axios.defaults.headers.post['Content-Type'] = 'application/x-www-urlencoded'
当实例创立后,也可批改实例的默认配置
axiosInstance.defaults.headers.common['Autorization'] = AUTH_TOKEN
配置的优先级:
传入的 config 中的配置 > instance.defaults 设置的配置 > axios.create() 中传入的配置
axios 错误处理:
config 配置项中退出了 validateStatus 后,会呈现上面扭转
validateStatus: (status) => {
// return status <= 200 // e.response 会被打印进去
return status <= 500 //e.response 不会被打印进去
}
即:
validateStatus 函数返回 true 时,response 会呈现在 instance.interceptors.response.use(successCallBack, errorCallBack)的successCallBack;为 false 时,会呈现在 errorCallBack 中。
所以,拦挡非 200 的申请能够这么做:
validateStatus: (status) => {return status === 200}
将 axios 申请中的 token 用批量替换的形式进行替换
instance.interceptors.request.use((config) => {
let url = config.url
if(url.includes("{token}")) {config.url = url.replace("{token}", token)
}
return config
}, (error) => {console.log("error 后果", error)
})
当参数要以 application / x-www-form-urlencoded
格局发送数据。能够有以下办法(测试过):
1,借用 qs.stringify,申请的 headers 的 Content-Type 会主动扭转为 application / x-www-form-urlencoded 数据也会变成 url 的格局
2,应用 formData,看代码:
下面和上面的形式,axios.post 传入 params,都能够失去想要的后果
let params = new FormData()
params.append('name', obj.brokerCode)
params.append('longLink', obj.longLink)
const params = qs.stringify({
name: obj.brokerCode,
longLink: obj.longLink
})
以上就是 axios 申请,前面在应用过程中遇到问题,会持续补充。