4

この問題を解決するにはどうすればよいですか? IE でアクセスが拒否されました:(jquery.form.js)

 =>   if (io.contentWindow.document.execCommand) {
        try { // #214
            io.contentWindow.document.execCommand('Stop');
        } catch(ignore) {}
    }
4

2 に答える 2

4

今日も同じ問題に見舞われました。

ただし、この問題は文書化されています

問題は、IE9 でコードが壊れていることです。リンクからのコメント投稿者の1人が問題を説明しています:

これは、IE の「わかりやすいエラー メッセージ」「機能」が原因で発生します。HTTP 4xx および 5xx 応答の場合、IE は IFRAME の内容を分かりやすいエラー メッセージに置き換え、その際にフレームのドメインを変更します。プラグインが応答ドキュメントにアクセスしようとすると、同一オリジン ポリシーが原因で失敗し、プラグインは要求を中止されたものとして扱います。

このセキュリティ制限により、IE js インタープリターは、io.contentWindow.document がアクセスされた瞬間からセキュリティ例外を発生させます。

クイックフィックス/ハック (try ブロック内で呼び出す場合は移動):

try { // #214
  if (io.contentWindow.document.execCommand) 
   io.contentWindow.document.execCommand('Stop');
} catch (ignore) { }

私はこの修正を本番環境に適用しており、IE8/IE9 でマイナスの副作用は見られませんでした。

于 2012-11-15T15:43:07.953 に答える
2

ご提供いただいた最小限の情報に基づくと、あるウィンドウで JavaScript を使用して、別のオリジンからウィンドウにアクセスしようとしているようです。それはできません。Same Origin Policyで許可されていません。それを「解決」する唯一の方法は、代わりに何か他のことをすることです。

于 2012-10-17T12:04:38.167 に答える