gpt4 book ai didi

javascript - 检测ajax请求的请求url

转载 作者:行者123 更新时间:2023-11-29 23:07:07 24 4
gpt4 key购买 nike

所以我使用下面的函数来检测 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。我有很多这样的功能。当我得到 url 时,我想在 url 的末尾附加 ?debug = 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,并且我也附加了 ?debug=1。当我 console.log(response); 时,我看到 url 正在更改,但我仍然没有看到任何错误。请让我知道我必须为此做任何其他事情。

最佳答案

经过大量搜索后,这是执行此操作的最佳方法。虽然只在 chrome 上测试过。

(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));
};
})();

关于javascript - 检测ajax请求的请求url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com