gpt4 book ai didi

javascript - 拦截任何请求 - javascript

转载 作者:行者123 更新时间:2023-12-01 00:59:58 29 4
gpt4 key购买 nike

我有一个网页 - sample-page.html 其中有 2 个链接 -

sample-page.html
- link1 (GET, ajax)
- link 2 (GET, new page)

当我点击link1时,会执行一个ajax GET请求,并且它仍然停留在sample-page.html处。当我点击link2 执行另一个 get 请求,将出现一个新页面 sample-page2

为了拦截这两个请求,我编写了如下的 JavaScript 代码 -

    //attempt-1 : javascript
(function (send) {

XMLHttpRequest.prototype.send = function () {
this.setRequestHeader('some-header-param', 'some-value');
send.apply(this, arguments);
};

})(XMLHttpRequest.prototype.send);

//attempt-2: jquery
/*$.ajaxSetup({
beforeSend: function (xhr,settings) {
xhr.setRequestHeader('some-header', 'some-header-value');
}
}); */

以上,两次尝试都成功拦截了来自 link1 的 ajax GET 请求。但以上代码片段均无法拦截link2的请求。任何人都可以帮助如何拦截这两个请求吗?

提前致谢。

最佳答案

您可以使用 javascript event.preventDefault() 功能来做到这一点。为该元素上的 onclick 编写一个事件监听器。执行您想要的任何功能,如果您想停止发送请求,请调用 event.preventDefault(),否则保持原样。

<a id='some_id'>click here</a>

document.getElementById('some_id').addEventListener('click',function(event){
//do whatever you want.
//If you want to stop the request.
if(need_to_stop){
event.preventDefault();
}
})

关于javascript - 拦截任何请求 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59082098/

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