【发布时间】:2014-08-13 10:06:33
【问题描述】:
假设有人在名为 app.js 的文件中编写了这样的方法,试图针对不存在的 url 执行 XHR 请求:
app.controller('MainCtrl', function($scope,$http) {
$scope.send = function() {
$http.get('http://run.plnkr.co/thisIs404');
};
});
我可以在控制台和网络面板中看到有关 URL http://run.plnkr.co/thisis404 的错误:
为了调试它,我想快速找到这个 XHR 调用在源代码中的位置(即找到 app.js 文件):
所以我在 chrome 开发工具中启用:
- 调用堆栈中的异步调试
- 调试任何 XHR
调试器实际上在 XHR 请求时停止,但调用堆栈只显示对 angular.js “核心”文件的引用:没有引用 app.js 任何地方都可以找到 .
我用 chromium 36 和 chrome 35 尝试了这个。唯一的解决方案:在整个代码库中搜索错误的 URL(在某些情况下可能很难做到)。
- 异步调试模式不应该指向堆栈中的
app.jssomwhere 吗? - 有没有办法从控制台错误中轻松追踪这个
app.js文件?
对于普通 XHR 请求(即没有角度),XHR 调试调用堆栈会在 app.js 中显示 XHR 调用(在这种情况下更容易调试):
此处为完整示例:http://plnkr.co/edit/lnCRpv?p=preview
[编辑] 正如我被问到的那样:Angular.js 在我的测试中没有被缩小。
【问题讨论】:
标签: javascript ajax angularjs asynchronous google-chrome-devtools