克隆并修改XmlHttpRequest

时间:2014-11-12 19:37:16

标签: javascript ajax prototypal-inheritance

这可能看起来像是对javascript方式的完全误解,但不过这是一个有趣的问题: 如何复制XmlHttpRequest并使copy的发送函数包含自定义标题,使其保持原始的XmlHttpRequest不受影响。

这是我的(不成功)尝试:

  Ajax.prototype._newReq = function() {
    var request = Object.create(XMLHttpRequest.prototype),
        token   = this.token;

    request._send = request.send;

    request.send = function(data) {
      request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
      if (typeof token !== 'undefined') {
        request.setRequestHeader("X-AUTH-TOKEN", token);
      }
      this._send(data)
    }

    return request;
  }

此代码抛出TypeError:非法调用

1 个答案:

答案 0 :(得分:0)

错误发生在request.setRequestHeader(“X-AUTH-TOKEN”,令牌)中;在我将其更改为this.setRequestHeader(“X-AUTH-TOKEN”,令牌)之后;有一些奇怪的错误我和凯文建议。