このJohnResigの記事では、彼はjavascriptを使用して辞書サイズの単語リストを扱っており、CDNからajaxを介してコンテンツを読み込んでいます。
単語は、単語を区切る改行で読み込まれます。それから彼はクロスドメインが失敗すると言います:
ただし、問題があります。CDNから辞書を読み込めません。CDNは別のサーバー(またはここでの場合のように別のサブドメイン)にあるため、これらのタイプのリクエストを禁止するブラウザーのクロスオリジンポリシーに翻弄されます。ただし、すべてが失われるわけではありません。辞書ファイルを微調整するだけで、ドメイン間でロードできます。
まず、辞書ファイルのすべてのエンドラインをスペースに置き換えます。次に、行全体をJSONPステートメントでラップします。したがって、最終結果は次のようになります。
dictLoaded('aah aahed aahing aahs aal ... zyzzyvas zzz');
これにより、ファイルに対してAjaxリクエストを実行し、期待どおりに機能させることができます。その一方で、ブラウザーによって提供されるすべてのキャッシュと圧縮の恩恵を受けます。
したがって、これを正しく読んでいる場合dictLoaded('original content')
、元のコンテンツの周りに彼のメソッドを追加するだけで、ajaxリクエストは失敗しません。
それ(関数+パラメーターに変換する)は本当に必要なすべてですか?そして、なぜJSONPはクロスドメインアクセス制限の問題を解決するのですか?