ホームページ >ウェブフロントエンド >jsチュートリアル >「file://」 URL からの AJAX リクエストで「Origin null は Access-Control-Allow-Origin によって許可されていません」エラーが発生するのはなぜですか?

「file://」 URL からの AJAX リクエストで「Origin null は Access-Control-Allow-Origin によって許可されていません」エラーが発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-23 05:30:25614ブラウズ

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

file:// URL からのリクエストに対する「Origin null is not allowed by Access-Control-Allow-Origin」エラー

問題: 開発者が file:// URL から jQuery の AJAX サポートを介してリクエストを行うときに問題が発生するパノラミオへ。 「Origin null is not allowed by Access-Control-Allow-Origin」というエラーがコンソールに表示されます。

根本原因分析:

  • 不適切なリクエスト タイプ: GET リクエストでは、dataType の「jsonp」を使用するか、「callback=?」を含める必要があります。 URL 内で JSONP を有効にするため、クロスドメイン リクエストに必要です。
  • file:// URL の CORS 制限: クロスオリジン リソース共有 (CORS) ヘッダーは、次からのリクエストを承認できません。 file:// エコーバックを介した null の Origin ヘッダーを持つ URL

解決策:

問題を解決するには、次の手順が必要です:

  1. JSONP を使用するリクエスト: $.getJSON を利用するか、$.get の dataType を「jsonp」に設定してください。 JSONP をトリガーします。「callback=?」の場合、リクエスト タイプを「jsonp」に変更します。 URL に存在します。
  2. file:// URL は避けてください: file:// URL では CORS サポートが制限されているため、テストは必ず http:// URL 経由で実施してください。

トラブルシューティング手順:

  1. JSONP の使用法を確認: $.get の dataType が jsonp に設定されているか、$.getJSON が "callback=?" で使用されていることを確認してください。
  2. クロスドメイン リクエストの CORS: file:// URL に対する CORS 制限を回避するには、http:// 経由でテストします。 Opera と Internet Explorer の実装が遅れているため、ブラウザが CORS をサポートしていることを確認してください。

以上が「file://」 URL からの AJAX リクエストで「Origin null は Access-Control-Allow-Origin によって許可されていません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。