0

このエラーは、バックボーンでフェッチを使用して "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」に設定した場合にのみ発生します。そうしないと、success 関数が正常に実行されません。

また、Chrome ブラウザーの要素検査ウィンドウのネットワーク ウィンドウでも、適切に応答を確認できました。

これはクロムでのみ発生し、Firefox では正常に動作します

4

1 に答える 1

0

1.0.0 の BB ソースの 345 行あたりに 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 分にハッキングしました

于 2013-06-27T16:22:50.947 に答える