use*_*760 8 javascript xmlhttprequest
我正在尝试通过覆盖XMLHttpRequest的send函数来记录(以及稍后修改)XMLHttpRequest发送到服务器的数据.我的函数将数据正确记录到控制台,但请求没有完成,因此浏览器会无限期地等待响应.任何想法代码有什么问题?
XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send;
var newSend = function(vData) { console.log("data: " + vData); realSend(vData); };
XMLHttpRequest.prototype.send = newSend;Run Code Online (Sandbox Code Playgroud)
ZER*_*ER0 21
你忘记了this:
this.realSend(vData);
Run Code Online (Sandbox Code Playgroud)
但是,您不需要向原型添加新方法:
var send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(data) {
send.call(this, data);
}
Run Code Online (Sandbox Code Playgroud)
使用闭包,您还可以避免使用流氓变量:
!function(send){
XMLHttpRequest.prototype.send = function (data) {
send.call(this, data);
}
}(XMLHttpRequest.prototype.send);
Run Code Online (Sandbox Code Playgroud)
xda*_*azz 19
XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send;
// here "this" points to the XMLHttpRequest Object.
var newSend = function(vData) { console.log("data: " + vData); this.realSend(vData); };
XMLHttpRequest.prototype.send = newSend;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11029 次 |
| 最近记录: |