6

SCRIPT5: Access is Denied issue in IE9 に関する他の記事をかなり読んだことがありますが、私が知る限り、これは少し異なり、なぜそれが起こっているのか正確にはわかりません。

この状況は、標準の 2011 テーマを使用してインストールされた Wordpress 3.4.1 で発生しました。次の関数を使用してスクリプトをキューに入れました。

function my_scripts(){
    wp_deregister_script('jquery');
    wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js',null,null,true);
    wp_register_script('cycle', 'http://ajax.microsoft.com/ajax/jquery.cycle/2.88/jquery.cycle.all.js',null,null,true);
    wp_register_script('plugin', get_stylesheet_directory_uri() . '/scripts/plugin-init.js',null,null,true);
    wp_enqueue_script('jquery');
    wp_enqueue_script('cycle');
    wp_enqueue_script('plugin');
}

最初にjquerycycleスクリプトは両方とも CDN から取得されます。単一要素に対する基本的な呼び出しを除いて、pluginスクリプトは空です。cycle

この時点で、IE9 を除くすべてのブラウザが正常に動作しました。次のエラーを受け取りました。

 SCRIPT5: Access is denied
 jquery.min.js, line 2 character 68522 

これがクロスオリジンの問題であることがすぐにわかりました。

IE 上の jQuery スクリプトへのアクセスが拒否されました

SCRIPT5: xmlhttprequest で IE9 でアクセスが拒否される

私のプラグインにはクロスオリジン機能がなかったので、これは奇妙だと思いました。また、問題はjquery私のコードではなく、それ自体に現れていました。いくつかの提案された修正を試みましたが、うまくいきませんでした。

基本的なものをいくつか試しました。スクリプトを直接フッターに移動しました。ヘッダーに直接移動しようとしました。私のスクリプトを方程式から切り離してみました。この時点で髪を引っ張ります。

私の最善の策は、コードのエラーの原因を実際に確認することでした(縮小版ではできなかったため)。この時点で、コードはヘッダーに直接含まれていたため.min、スクリプトから を削除し、更新を行いました。TA-DA: すべてが問題なく動作するようになりました。

&my_scripts()を使用して、縮小されていないスクリプト宣言を関数に戻そうとすると、再び失敗します。縮小されていないスクリプト宣言をフッターに移動しようとすると、再び失敗します。当時、ローカル コピーはテストせず、CDN バージョンのみをテストしました。wp_register_scriptwp_enqueue_script

これは同じ SCRIPT5 エラーですが、残念ながら、エラーが生成されているコードが手元にありません。これは先日オフィスにあったもので、週末は休みです。個人のサンドボックスでイベントを再現しようとしましたが、エラーを再現できませんでした。

ここで何が起こっているのか誰にも分かりませんか?jquery.min縮小されていないファイルが失敗しないのはなぜですか? また、縮小されていないファイルが直接にない限り、なぜ失敗し続けるの<head>でしょうか?

来週仕事に戻るまで待たなければならないものもありますが、さらに情報を提供できることを嬉しく思います. できるだけ早く、残りのコードを投稿しようとします。

4

2 に答える 2

20

私は同じ問題を抱えていました.jQuery 1.8.1は私のためにこの問題を修正しました

于 2012-09-05T16:51:56.963 に答える
2

何らかの理由で、@ axel の回答がうまくいきませんでした。代わりに、HTMLファイルと同じサーバーでファイルをホストすることにし、それを修正しました(少なくとも私にとっては)

于 2013-02-12T23:17:46.770 に答える