api

  1. axios(config)
config={
  method,
  url,
  data,//只适用于post,put,patch,是请求主体被发送数据
  baseURL,//在路径前面添加绝对URL
  transformRequest:function(data){},// 对请求data进行任意的转换处理
  transformResponse:function(data){},//对响应data进行任意的转换处理
  headers:{}//自定义请求头
  params:{}// 和请求一起发送的url参数
  paramsSerializer:function(params){}//负责将params序列化的函数
  timeout,//如果超时,请求中断
  withCredentials,//跨域请求是否需要凭证,默认为false
  adapter:function(config){},//允许自定义处理请求,测试更轻松
  auth:{},//表示应该使用 HTTP 基础验证,并提供凭据,覆盖原有的请求头
  responseType,//默认json
    // `xsrfCookieName` 是用作 xsrf token 的值的cookie的名称
  xsrfCookieName: 'XSRF-TOKEN', // default
  // `xsrfHeaderName` 是承载 xsrf token 的值的 HTTP 头的名称
  xsrfHeaderName: 'X-XSRF-TOKEN', // 默认的
  // `onUploadProgress` 允许为上传处理进度事件
  onUploadProgress: function (progressEvent) {
    // 对原生进度事件的处理
  },

  // `onDownloadProgress` 允许为下载处理进度事件
  onDownloadProgress: function (progressEvent) {
    // 对原生进度事件的处理
  },
  maxContentLength:2000,//允许响应内容最大尺寸
  validateStatus:function(status){},//返回true为resolve,false为reject,一般默认200到300之间为true
  maxRedirects:5,//最大重定向数
  httpAgent: new http.Agent({ keepAlive: true }),
  httpsAgent: new https.Agent({ keepAlive: true }),使用自定义代理
  proxy: {
    host: '127.0.0.1',
    port: 9000,
    auth: : {
      username: 'mikeymike',
      password: 'rapunz3l'
    }
  },
// 'proxy' 定义代理服务器的主机名称和端口
  // `auth` 表示 HTTP 基础验证应当用于连接代理,并提供凭据
  // 这将会设置一个 `Proxy-Authorization` 头,
},

2.axios (url[,config])
3.根据请求方法添加别名

  • axios.request(config)
  • axios.get(url[, config])
  • axios.delete(url[, config])
  • axios.head(url[, config])
  • axios.post(url[, data[, config]])
  • axios.put(url[, data[, config]])
  • axios.patch(url[, data[, config]])

4.并发请求

  • axios.all(iterable)
  • axios.spread(callback)

5.使用实例

var instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

实例方法

  • axios#request(config)
  • axios#get(url[, config])
  • axios#delete(url[, config])
  • axios#head(url[, config])
  • axios#post(url[, data[, config]])
  • axios#put(url[, data[, config]])
  • axios#patch(url[, data[, config]])

可以通过实例方法给指定的实例添加配置

6.响应结构

{
  data:{},
  status:200,
  statusText:"OK",
  headers:{},
  config:{}
}

7.配置的默认值

  • 全局的默认值 axios.default.xxx
  • 自定义实例的默认值 instance.default.xxx
  • 优先顺序 请求config参数>实例的default>默认库

8.拦截器(在请求或者响应被then或catch之前拦截下来)

// 添加请求拦截器
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);
  });

//可以赋值给变量,然后稍后移除
var myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);

// 给自定义实例添加拦截器
var instance = axios.create();
instance.interceptors.request.use(function () {/*...*/});

9.错误处理
10.取消请求

你可能感兴趣的:(api)