AJAX 実行時の File:// URL リクエストのエラー「Origin Null is Not allowed by Access-Control-Allow-Origin」
file:// URL から別のドメインへのリクエストを実行すると、「XMLHttpRequest を読み込めません」エラーが発生する場合があります。この問題は、ブラウザによって適用されるクロスオリジン セキュリティ ポリシーが原因で発生します。
クロスオリジン リクエストについて
ブラウザは、ユーザー データを保護し、ユーザー データを保護するためにクロスオリジン リクエストを制限します。悪意のあるスクリプトがさまざまな Web サイトから機密情報にアクセスするのを防ぎます。クロスオリジンリクエストを有効にするには、サーバーは、許可されたオリジンを指定する Access-Control-Allow-Origin ヘッダーを返す必要があります。
File:// URL リクエストの問題
file:// URL からページにアクセスすると、ブラウザはオリジンを「null」として表示しますが、これは許可されたオリジンではありません。これは、file:// URL リクエストが Web の一部とみなされず、クロスオリジン機能が制限されているためです。
解決策 1: JSONP を使用する
JSONP (JSON with Padding) は、同一オリジン ポリシーに違反することなく、クロスオリジン リクエストを許可する技術です。これには、コールバック パラメータを URL に追加することが含まれます。これは、引数として JSON データを使用して呼び出されます。
jQuery では、$.get() の代わりに $.getJSON() を使用し、「?」を追加できます。コールバック=?" URL に追加して、JSONP モードをトリガーします。
解決策 #2: HTTP 経由で提供
完全なクロスオリジン サポートを得るには、HTTP 経由でページをホストします。これにより、ブラウザで適切な Origin ヘッダーを設定し、CORS を有効にできるようになります。
トラブルシューティングのヒント
以上が「file://」 URL からの AJAX リクエストで「Origin Null is Not allowed」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。