SecurityError:在“xml”数据类型上使用Backbone fetch时发生DOM异常18

时间:2013-03-22 02:01:20

标签: ajax google-chrome jquery backbone.js

当我尝试使用主干中的fetch检索“xml”响应时,会发生此错误。

我的获取代码是:

itenary.fetch({
data :{date:dayFormatToSend.toString(), advisorId:"0000222186"},
dataType:"xml",
 success:function(response){
  console.log(response);
     } 

错误

Uncaught Error: SecurityError: DOM Exception 18 backbone-min.js:13
f.extend.set backbone-min.js:13
a.success backbone-min.js:15
c.success backbone-min.js:40
fire jquery-1.8.0.js:973
self.fireWith jquery-1.8.0.js:1080
done jquery-1.8.0.js:7583
callback

仅当我将dataType设置为“xml”时才会发生这种情况,否则成功函数将无法成功执行。

此外,我可以在Chrome浏览器检查元素窗口的网络窗口中正确看到响应。

这种情况只发生在Chrome中,并且可以正常使用firefox

1 个答案:

答案 0 :(得分:0)

我通过在第345行附近的1.0.0中添加了一个关于BB源的try catch来解决这个问题。对于这样的事情:

// For each `set` attribute, update or delete the current value.
        for (attr in attrs) {
            try {
                val = attrs[attr];
                if (!_.isEqual(current[attr], val)) changes.push(attr);
                if (!_.isEqual(prev[attr], val)) {
                    this.changed[attr] = val;
                } else {
                    delete this.changed[attr];
                }
                unset ? delete current[attr] : current[attr] = val;
            } catch (err){
                if(window.console) console.log(err);
            }
        }

问题似乎是当它遇到'cookie'属性时,它会破解并引发Chrome中的安全违规行为。试图调用attrs [attr]等同于文件[cookie]导致Kaboom。不确定Chrome中的安全策略是否违反了,但try catch允许代码继续执行并根据需要完成请求,并按预期交回xml。

我在http://jsfiddle.net/ctoestreich/UwRDp/

将其攻击到1.0.0分钟