ホームページ > ウェブフロントエンド > jsチュートリアル > 「file://」 URL からの AJAX リクエストで「Origin Null is Not allowed」エラーが発生するのはなぜですか?

「file://」 URL からの AJAX リクエストで「Origin Null is Not allowed」エラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2025-01-06 02:35:41
オリジナル
590 人が閲覧しました

Why Does My AJAX Request from `file://` URLs Result in an

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 を有効にできるようになります。

トラブルシューティングのヒント

  • dataType を「」に設定して、JSONP を正しく使用していることを確認してください。 jsonp」または「callback=?」を含む
  • file:// リクエストでは CORS サポートが制限されているため、HTTP URL からテストしていることを確認してください。
  • 必要に応じて実験的な機能を有効にして、ブラウザが CORS をサポートしているかどうかを確認してください。 .

以上が「file://」 URL からの AJAX リクエストで「Origin Null is Not allowed」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート