Javascript 截取所有ajax结果并获取响应代码
是否可以发送ajax请求,截取或查看HTML响应代码,然后执行操作?我有一个系统,它使用纯JS和XMLHttpRequest来查看诸如Javascript 截取所有ajax结果并获取响应代码,javascript,jquery,ajax,Javascript,Jquery,Ajax,是否可以发送ajax请求,截取或查看HTML响应代码,然后执行操作?我有一个系统,它使用纯JS和XMLHttpRequest来查看诸如中止、错误、和超时,但是跟踪404和409等更有用 这是我当前的代码,对于这种方法来说非常流行 (function(open) { XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { this.addEventL
中止
、错误
、和超时
,但是跟踪404和409等更有用
这是我当前的代码,对于这种方法来说非常流行
(function(open) {
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
this.addEventListener("abort", function() {
self.trigger('abort');
}, false);
this.addEventListener("error", function() {
self.trigger('error');
}, false);
this.addEventListener("timeout", function() {
self.trigger('timeout');
}, false);
this.addEventListener("load", function() {
self.trigger('load');
}, false);
open.call(this, method, url, async, user, pass);
};
})(XMLHttpRequest.prototype.open);
但我希望打开HTTP响应代码。我还与jQuery绑定在一起,因此我可以使用jQuery设置选项提供的任何选项,但到目前为止,我还没有找到获取响应代码的方法
请注意,我正在寻找一个全球性的解决方案。我不能为每个ajax请求添加100个单独的函数调用。状态属性可以很容易地在
中找到
(function(open) {
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
switch(this.status){
// case 404: etc
}
open.call(this, method, url, async, user, pass);
};
})(XMLHttpRequest.prototype.open);
应该帮助为什么你不能得到HTML响应代码?没有意识到在this.status
中很容易找到。注意:你不应该写open.call(this,method,url,async,user,pass)代码>但是返回open。应用(这个,参数)
。一方面,您应该始终返回包装函数的结果,当前它不返回任何内容,但将来可能会返回,另一方面,您应该使用apply
和arguments
,以便包装器不依赖于参数的更改。