gpt4 book ai didi

javascript - AJAX 请求从每个页面都会命中服务器,但我找不到原始 AJAX 调用的来源

转载 作者:行者123 更新时间:2023-11-28 21:10:59 24 4
gpt4 key购买 nike

在我的数千行 JavaScript 中,正在执行 ajax 调用。我一生都无法弄清楚它来自哪里。它似乎是在页面加载后立即发生的。

我可以在 firebug 中看到正在进行 ajax 调用。 ajax 调用始终请求当前页面。因此,例如,一旦 users#new 加载,它会请求 user#new.js,并对所有其他 Controller 和操作执行相同的操作。

有没有办法可以确定代码中的哪个位置调用它?

最佳答案

尽管您已经找到了解决方案,但您仍然可以使用调试器来纠正这种情况。假设您正在使用 jQuery 及其 AJAX 帮助程序,只需在 first line 中设置一个断点即可。 $.ajax 方法的一部分。

当调用 $.ajax 时,运行时将在断点处暂停,您可以查看调用堆栈以准确找出调用的来源。

如果您直接使用 XMLHttpRequest 构造函数而不是通过 jQuery 或其他包装器,则将原始 XMLHttpRequest 构造函数替换为虚拟实现以进行跟踪它的调用者。

function XMLHttpRequest() {
this.open = function() {}; // ignore
this.send = function() {
debugger;
};
}

在此重写实现的 send 方法中以编程方式放置断点或调用调试器,并且每当有人尝试实例化新的 XMLHttpRequest 对象并调用 send 方法时,您可以拦截调用并查看调用跟踪以找出是谁调用的。

有很多很好的调试选项,例如 Firefox 的 Firebug,或者 Chrome 和 Safari 中的内置开发人员工具。

关于javascript - AJAX 请求从每个页面都会命中服务器,但我找不到原始 AJAX 调用的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675674/

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