骨干模型fetch async false对firefox不起作用

时间:2013-12-05 06:32:58

标签: backbone.js asynchronous synchronization fetch

我有如下代码,它适用于chrome,但不适用于firefox,这两个版本都是最新版本。 firefox不支持异步错误获取主干吗?

identity.fetch( { 
async: false, "xhrFields": { "withCredentials" : true }, 
 success : function ( model ) {
   dosomething();
 }

});

2 个答案:

答案 0 :(得分:0)

主干Model.fetch委托给jQuery.ajax,如backbone documentation中所述。

如果查看jQuery docs,有关 async 的部分会提供有关此选项正确用法的一些提示:

  

[..]从jQuery 1.8开始,使用async:false和jqXHR($ .Deferred)是   弃用;您必须使用success / error / complete回调选项   而不是jqXHR对象的相应方法,如   jqXHR.done()或不推荐使用的jqXHR.success()。

所以也许更好的选择是使用默认值并同步处理响应。

答案 1 :(得分:0)

问题是同步XMLHttpRequests不允许withCredentials(它在属性设置时引发错误,而不是在获取时引发错误。)