所以我用下面的函数来检测一个Ajax调用。
var oldXHR = window.XMLHttpRequest;
function newXHR() {
var realXHR = new oldXHR();
realXHR.addEventListener("readystatechange", function() {
if(realXHR.readyState==1){
alert('server connection established');
}
if(realXHR.readyState==2){
alert('request received');
}
if(realXHR.readyState==3){
alert('processing request');
}
if(realXHR.readyState==4){
alert('request finished and response is ready');
}
}, false);
return realXHR;
}
window.XMLHttpRequest = newXHR;
这是工作,但现在我需要特定的Ajax请求的URL。我有一个像下面的功能: -
function loadFundSimulation(num_days = ''){
var url = "<?php echo site_url('investment_plan/simulation/FUND'); ?>";
$.post(url, data).done(function (response,status,xhr) {
#....code....#
}).fail(function (data) {
#....code....#
});
}
当AJAX被称为当时我想的这个功能网址。我有很多这样的功能。当我得到的URL我要追加?调试= 1在网址的结尾。我曾尝试alert(this.url);
但它返回undefined。任何帮助将不胜感激。提前致谢。
编辑
var open = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, uri, async, user, pass) {
this.addEventListener("readystatechange", function(event) {
if(this.readyState == 4){
var self = this;
var response = {
method: method,
uri: uri,
responseText: self.responseText
};
response.uri = uri + '?debug=1';
console.log(response);
} else {
console.log(this.readyState);
}
}, false);
open.call(this, method, uri, async, user, pass);
};
我已经得到了Ajax请求的URL和我追加?调试= 1为好。当我console.log(response);
我看到网址被改变,但我仍然没有看到任何错误。请让我知道我必须做别的了点。
搜索了很多之后,这是做到这一点的最好办法。虽然对铬只测试。
(function() {
var proxied = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function() {
arguments[1] = arguments[1] + '&debug=1';
console.log( arguments[1] );
return proxied.apply(this, [].slice.call(arguments));
};
})();