1.安装
在Vue-cli的目录下
cnpm install axios --save
2.引入
在main.js中
import Axios from 'axios'
Vue.prototype.$axios = Axios;//加载到原型上
注意大小写
3.使用
在组建中创建生命周期函数
created(){
this.$Axios.get("")
.then(res =>{})//返回数据处理
.catch(error =>{})//返回数据为null时
}
例:
有参数的情况:
get:
post(只看格式):
post需要form-data格式(区别于)x-www-form-rulencoded格式
4.全局设置:
全局的 axios 默认值(放在main.js中,注意大小写)
Axios.defaults.baseURL = 'https://api.example.com';
Axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;//作者的认证
Axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
5.拦截器
在请求或响应被 then 或 catch 处理前拦截它们。(在main.js中全局)
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
// 对响应数据做点什么
return response;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});
例:在请求post前转换格式
if(config.methods == "post"){
config.data = qs.stringifty(config.data);
}
post请求就可改为:
this.$axios.post("/searchMusic", {
name: "稻香"
})
6.HTTP协议中请求的8种方法:
OPTIONS获取服务器支持的HTTP请求方法;
HEAD跟get很像,但是不返回响应体信息,用于检查对象是否存在,并获取包含在响应消息头中的信息。
GET向特定的资源发出请求,得到资源。
POST向指定资源提交数据进行处理的请求,用于添加新的内容。
PUT向指定资源位置上传其最新的内容,用于修改某个内容。
DELETE请求服务器删除请求的URI所标识的资源,用于删除。
TRACE回馈服务器收到的请求,用于远程诊断服务器。
CONNECT用于代理进行传输,如使用ssl
patch是对put的补充,用来对已知资源进行局部更新。(幂等)
7.方法内的参数:
1、url(必写)
请求地址
2、method
请求方法,默认是get
3、baseURL(常用)
baseURL会添加到url前(url是绝对地址除外)。
4、transformRequest
transformRequest
选项允许我们在请求发送到服务器之前对请求的数据做出一些改动
该选项只适用于以下请求方式:put/post/patch
5、transformResponse
transformResponse
选项允许我们在数据传送到then/catch
方法之前对数据进行改动
6、headers(常用,如设置请求头json类型)
自定义请求头信息
7、params(常用,只有get请求设置params,其他请求需设置params,即只有get的请求参数位于url后,其他请求参数都在请求体中)
params
选项是要随请求一起发送的请求参数----一般链接在URL后面
8、data(常用)
data
选项是作为一个请求体而需要被发送的数据,该选项只适用于方法:put/post/patch
在浏览器上data只能是FormData, File, Blob格式
9、timeout(常用)
超时时间
10、withCredentials
withCredentails
选项表明了是否是跨域请求、默认是default
11、onUploadProgress
onUploadProgress
上传进度事件
12、onDownloadProgress
下载进度的事件
13、maxContentLength
相应内容的最大值