api

作者: jiayuiii | 来源:发表于2019-10-05 10:34 被阅读0次
    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

          本文链接:https://www.haomeiwen.com/subject/zqglpctx.html