我遇到了类似的问题:查找操作(AJAX 请求)被拒绝,在线中看不到
但是,就我而言,我提出了一个要求。此请求适用于正常页面加载。在表单提交(而不是通过 ember)后,它无法静默加载,重定向回同一页面。没有发出 AJAX 请求。
我的主要问题是:我该如何调试这样的问题?
我试过的
我在各种地方添加了 console.log 语句以了解请求生命周期。
由于我已经读过如果在其中引发异常,承诺可能会被拒绝,因此我尝试将 chrome 调试器切换为“暂停所有异常”(而不是“暂停未捕获的异常”)。当然,它会在一些例外情况下中断,例如:
// This should fail with an exception
// Gecko does not error, returns false instead
try {
matches.call( div, "[test!='']:sizzle" );
但是由于我有一种方法可以让请求生效,也可以让它失效,所以我可以很容易地比较差异。当我的请求失败时,我预计会有一个未捕获的异常,但没有这样的运气。
我还添加了一个
Ember.RSVP.configure('onerror', function(error) {
console.log(error.message);
console.log(error.stack);
});
块,但它不会被调用。
我还查看了控制台中的不同对象以尝试了解我的应用程序状态:
store = App.__container__.lookup('store:main')
b = store.find('bundle')
b.isRejected // => true
b.reason.statusText // => "error"
更新:更多细节
我正在从事的项目由 Rails 支持。我在用:
DEBUG: -------------------------------
DEBUG: Ember.VERSION : 1.0.0
DEBUG: Handlebars.VERSION : 1.0.0
DEBUG: jQuery.VERSION : 1.8.3
DEBUG: -------------------------------
它没有出现在调试输出中,但我使用的是 ember-data 1.0 beta 3:
// Version: v1.0.0-beta.3
// Last commit: 2259c27 (2013-09-28 19:24:07 -0700)
该应用程序加载所有捆绑包以呈现它们和一个表单,但该表单直接提交给 Rails。Rails 处理发布请求并重定向回/
ember 应用程序所在的位置。
第一个/
加载一切正常的请求,但是当我提交表单并重定向回来时,我的 ajax 调用我的调用store.find('bundle')
什么也不做。
更新
我发现我的问题与推送器(websockets)有关。
这个问题似乎是间歇性的,我只在 Chrome 中看到过(我只测试过 Firefox)。
当我在页面刷新之前断开与 websockets 的连接时,问题就消失了。