axios 是Vue官方推荐的Request库。
特性
- 浏览器端发起XMLHttpRequests请求
- Node端发起http请求
- 支持Promise API
- 拦截请求和相应
- 转化请求和响应数据
- 取消请求
- 自动转化json数据
- 客户端支持抵御 XSRF
安装
npm install axios –save
API
使用
接下来简单介绍一下axios在vue项目中的使用。
1 | // ajax.js |
Request Config
1 | { |
说明
- url —— 用来向服务器发送请求的url
- method —— 请求方法,默认是GET方法
- baseURL —— 基础URL路径,假如url不是绝对路径,如https://some-domain.com/api/v1/login?name=jack,那么向服务器发送请求的URL将会是baseURL + url。
- transformRequest —— transformRequest方法允许在请求发送到服务器之前修改该请求,此方法只适用于PUT、POST和PATCH方法中。而且,此方法最后必须返回一个string、ArrayBuffer或者Stream。
- transformResponse —— transformResponse方法允许在数据传递到then/catch之前修改response数据。此方法最后也要返回数据。
- headers —— 发送自定义Headers头文件,头文件中包含了http请求的各种信息。
- params —— params是发送请求的查询参数对象,对象中的数据会被拼接成url?param1=value1¶m2=value2。
- paramsSerializer —— params参数序列化器。
- data —— data是在发送POST、PUT或者PATCH请求的数据对象。
- timeout —— 请求超时设置,单位为毫秒
- withCredentials —— 表明是否有跨域请求需要用到证书
- adapter —— adapter允许用户处理更易于测试的请求。返回一个Promise和一个有效的response
- auth —— auth表明提供凭证用于完成http的身份验证。这将会在headers中设置一个Authorization授权信息。自定义Authorization授权要设置在headers中。
- responseType —— 表示服务器将返回响应的数据类型,有arraybuffer、blob、document、json、text、stream这6个类型,默认是json类似数据。
- xsrfCookieName —— 用作 xsrf token 值的 cookie 名称
- xsrfHeaderName —— 带有 xsrf token 值 http head 名称
- onUploadProgress —— 允许在上传过程中的做一些操作
- onDownloadProgress —— 允许在下载过程中的做一些操作
- maxContentLength —— 定义了接收到的response响应数据的最大长度。
- validateStatus —— validateStatus定义了根据HTTP响应状态码决定是否接收或拒绝获取到的promise。如果 validateStatus 返回 true (或设置为 null 或 undefined ),promise将被接收;否则,promise将被拒绝。
- maxRedirects —— maxRedirects定义了在node.js中redirect的最大值,如果设置为0,则没有redirect。
- httpAgent —— 定义在使用http请求时的代理
- httpsAgent —— 定义在使用https请求时的代理
- proxy —— proxy定义代理服务器的主机名和端口,auth
- cancelToken —— cancelToken定义一个 cancel token 用于取消请求
Response Schema
1 | { |