我如何拦截xmlhttprequest并在请求发送之前进行一些api调用

时间:2019-05-08 10:51:50

标签: javascript jquery ajax reactjs xmlhttprequest

我如何拦截xmlhttprequest并进行一些验证或在请求发送之前进行一些api调用

因为我想集成jwt到期的逻辑,在这里我验证jwt是否过期,如果是,则调用令牌api并设置为本地存储,然后执行其他api,这样用户状态将是持久的,我使用xmlhttpsrequest

我不知道将逻辑放置在发送或打开位置

xhr.send = function(data) {
      const rsc = this.onreadystatechange;


      this.onreadystatechange = function() {


        if(this.readyState === 4 && this.status >= 400 && this.status < 600) {
          let el = typeof this.response === 'object' ? JSON.stringify(this.response) : this.response;

        }

        if (this.readyState === 4 && this.status === 401) {
          console.log('session destroyes')d

        } else if (rsc) {
          return rsc.apply(this, arguments);
        }
      };

      return send.apply(this, arguments);
    };
  }

1 个答案:

答案 0 :(得分:0)

要在令牌过期后恢复令牌,您需要考虑一些重要的事情。例如,将需要再次发送失败的请求。我建议您使用my example code for implementation JWT with axios