0

是否可以从 XMLHttpRequest 对象获取请求的属性(最好是在发送之前)。

例如调用后:

var a = new XMLHttpRequest( );
a.open( 'POST', 'http://localhost/test', true );

然后我将如何从对象中检索方法和操作 url?

4

1 回答 1

1

这在 chrome、firefox 和 IE10 中对我有用,并且可能也适用于其他人:

(function(){
 var op=XMLHttpRequest.prototype.open;
 XMLHttpRequest.prototype.open=function(method, url, async){
   this.url=url; 
   this.method=method;
   return op.call(this, method, url, async);
 };
}());

并确保它有效:

//demo:
var a = new XMLHttpRequest( );
a.open("GET", "/", false);
a.send();
alert( a.url +"\n\n" + a.responseText);

现在,每次调用 open() 时,它都会将 url 和方法记住到 ajax 实例中。由于 ajax 本身是一个对象,因此没有必要为了附加一些属性而包装一个额外的对象。我想不出像这样不显眼地包装 ajax 对象的任何缺点,但也许这里有人知道潜在的陷阱。

于 2013-11-11T17:47:41.647 回答