axios 0.18升级至0.19.0后,自定义参数被过滤掉

axios 0.18升级至0.19.0后,自定义参数被过滤掉

在项目里面有类似于这样的请求,在axios请求上添加了一个type属性,比如type: 'download'用以统一处理下载相关的请求,在0.18版本上可以正常使用,代码像如下这样

export function downloadFile(params) {
  /**
   * 下载文件
   */
  return request({ url: 'download_url', method: 'get', params, type: 'download' })
}

升级至0.19.0后,发现在请求拦截器里面,参数type被竟然弄丢了!
于是怀着一颗好奇的心,打开了axios源码,对比了一下,发现axios对拦截的请求参数进行了过滤,具体代码在这个文件里面axios/lib/core/mergeConfig.js,代码如下

utils.forEach([
    'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',
    'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',
    'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength',
    'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken',
    'socketPath'
  ], function defaultToConfig2(prop) {
    if (typeof config2[prop] !== 'undefined') {
      config[prop] = config2[prop];
    } else if (typeof config1[prop] !== 'undefined') {
      config[prop] = config1[prop];
    }
  });

于是给源码打了个patch包,添加了允许接收type属性,算是个临时解决方案吧

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值