【JavaScript】获取指定的url后端返回的header头里的数据

想要获取指定的url的header头,只能在拦截器过滤。
一开始准备直接过滤所有的拦截信息然后把需要的url信息存到本地,
再通过再次在页面请求接口保存header头

Vue.http.interceptors.push(function(request, next) {
  if(request.url.indexOf('slice/by/pathology')!== -1){
    sessionStorage.setItem('pathology_url',request.url)
    sessionStorage.setItem('pathology_params',JSON.stringify(request.params))
    //储存需要用JSON.stringify转化一下
  }
  ...
 } 

getHeaders(){
    var url = sessionStorage.getItem('pathology_url')+'?pathology_id='+JSON.parse(sessionStorage.getItem('pathology_params')).pathology_id
    var req = new XMLHttpRequest();
    req.open('GET', url, false);
    req.send(null);
    var headerArr = req.getAllResponseHeaders().split('\n');
    var headers = {};
    headerArr.forEach(item => {
      if (item !== '') {
        var index = item.indexOf(':');
        var key = item.slice(0, index);
        var value = item.slice(index + 1).trim();
        headers[key] = value
      }
    })
    this.next = window.atob(headers.next)//此处后端用base64加密了
    this.prev = window.atob(headers.prev)
  },

但是这样太不优雅了
可以直接过滤需要的url然后修改返回值。在调取接口时直接取用

Vue.http.interceptors.push(function(request, next) {
  request.timeout = request.timeout ?? 10000;
  const logLevel = request.headers.get('X-Custom-Log-Level');
  next(function(response) {
    if (response?.status === 0) {
     ...
    } else if (response?.status === 401) {
     ...
    } else if (!validStatus.contains(response.status) && logLevel !== 'DEBUG') {
     ...
    }else{
      if(request.url.indexOf('slice/by/pathology')!== -1){
        response.data.prev = response.headers.map.prev;
        response.data.next = response.headers.map.next;
      }
      next();
    }
  });
});

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值