有没有快速的方法可以找出哪个javascript代码(文件名和确切行)触发了特定的ajax调用?
使用firebug我可以找到ajax调用,但快速查找确切的行将有助于调试
提前感谢您提供任何帮助
答案 0 :(得分:3)
在Firebug中,您可以单击“控制台”面板中的源链接:
或在Net面板中设置断点:
答案 1 :(得分:2)
答案 2 :(得分:0)
我通常做的是添加一堆:
console.log("message that explains where in the code I am now...");
但请注意,因为console.log可能会在旧版本的IE中出现问题,所以当你投入生产时,你必须删除所有的console.log调用。
答案 3 :(得分:0)
我真的不知道任何干净的方法(也许存在一个)。但我有点黑客提议。
如果您未在网页中使用Prototype.js,请在命令行中输入以下命令(使用Firebug 1.11):
window.old$ = $; // in case you're using a framework like jQuery
include("https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"); // loads Prototype
控制台应该打印: prototype.js正确包含。</ em>
然后,要恢复旧的“$”变量,请键入:
window.$ = window.old$;
现在加载了Prototype,我们可以包装XMLHttpRequest.prototype.open函数,这样我们就可以获得调用堆栈(就像建议的破坏一样):
XMLHttpRequest.prototype.open = XMLHttpRequest.prototype.open.wrap(function(orig, ...args)
{
console.log("trace for :"+args[1]); // prints the URL of the request
console.trace(); // prints the stack trace
orig.apply(null, args); // call the original function
});
就是这样。
N.B。:如果请求在开始时启动: