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

「file://」 URL からの AJAX リクエストが「Access-Control-Allow-Origin によって Origin Null が許可されていません」というメッセージで失敗するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-19 12:51:10
オリジナル
124 人が閲覧しました

Why Does My AJAX Request from `file://` URLs Fail with

File:// URL からのリクエストに対する「Access-Control-Allow-Origin によってオリジン Null が許可されない」問題

はじめに:

ドメインとは異なるドメインに対して AJAX リクエストを実行する場合file:// URL を使用すると、開発者は「Origin null は Access-Control-Allow-Origin では許可されません」に関連するエラーが発生する可能性があります。この問題は、クロスドメイン リクエストを制限する Cross-Origin Resource Sharing (CORS) として知られるセキュリティ対策が原因で発生します。

問題:

から行われた AJAX リクエストfile:// URL には null オリジンが含まれていますが、これは CORS で許可されていません。ブラウザはこれらのリクエストをブロックして、異なるドメイン間のリソースへの不正アクセスを防ぎます。

解決策:

この問題を解決するには、次の 2 つの主な方法を使用できます。

  1. JSONP を使用するリクエスト:

    JSONP (JSON with Padding) は、応答をコールバック関数でラップすることでクロスドメイン リクエストを可能にする技術です。 URL でコールバック関数名を指定すると、ブラウザーは応答を AJAX リクエストではなく関数呼び出しとして解釈できます。 JSONP を使用するには:

    • jQuery $.get リクエストで dataType を「jsonp」に設定します。
    • リクエスト URL に「callback=?」` を含めます。これにより、jQuery は使用JSONP.

    例:

    $.get(url, { callback: 'myCallback' }, function(data) {
      // Handle the response data
    });
    ログイン後にコピー
  2. HTTP URL を使用したテスト:

    CORS 制限は適用されませんhttp:// URL からのリクエストに適用されます。したがって、http:// URL からのリクエストをテストすると、null オリジンの問題を回避できます。このアプローチは、サーバー側 CORS 構成のデバッグと検証に役立ちます。

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

  • サーバーがサイド スクリプトは、次のような適切なヘッダーを送信することで CORS をサポートするように構成されています。 Access-Control-Allow-Origin.
  • ブラウザと CORS の互換性を確認します。現在、Opera と Internet Explorer は CORS のサポートを制限しています。
  • 可能な限り、file:// URL からクロスドメイン リクエストを作成しないでください。

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

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