この記事では、クロスドメインのドメイン名を制御し、PHP バックエンドで画像のクロスドメインのアップロードを許可する方法を紹介します。これには一定の参考価値があります。必要な友人は参考にしてください。そうなることを願っています。あなたにとって役に立ちます。
クロスドメインの問題に対処する必要があることが多く、フロントエンドはより直接的に行う必要があります
Ajax 非同期送信、XML または jsonp、またはフォーム送信のいずれかを選択します
jsonp は基本的に大きな問題を処理できます いくつかのクロスドメインの問題もありますが、問題は比較的明らかでもあります。get メソッドを通じてのみ送信できます
##そして、jsonp は URL にパラメータを入れてリクエストを送信しますただし、すべてのブラウザには URL の長さの制限があり、ブラウザごとに長さの制限が異なります。#記事などの大きなコンテンツの段落を送信する必要がある場合、jsonp を使用する場合、長さの制限がある場合は、 非常に面倒で、最終的には正しくありません セキュリティに若干の影響が出ます あと、axiox は現在 jsonp をサポートしていませんが、これを解決する方法はあります。#特に画像リソースをアップロードする場合、jsonp などのメソッドを使用して適切に実装することはできません
クロスドメイン画像アップロードが必要なシナリオもちろん、クロスドメインにしないことが最善ですが、現在、ほとんどのプロジェクトではフロントエンドとバックエンドが分離されています
静的リソースとインターフェイスは異なるドメイン名または第 2 レベルのドメイン名ですそれぞれ、クロスドメインが関係します。
リソースのアップロードの場合、クロスドメインにはバックエンドの Access-Control-Allow-Origin と現在のリクエストが必要です。Origin と同様に、*# に設定することはできません。
##php ソリューション
#従来のデータ リクエストの場合、バックエンドは Access-Control-Allow-Origin を * Healthy
header('Access-Control-Allow-Origin:*');
$originList = [ 'http://127.0.0.1', 'http://www.php.cn', 'http://www.php.cn', ]; if(in_array($_SERVER['HTTP_ORIGIN'], $originList)){ header('Access-Control-Allow-Origin:'.$origin); header("Access-Control-Allow-Credentials: true"); header('Access-Control-Allow-Headers:x-requested-with,content-type'); header("Access-Control-Allow-Methods: POST,GET,OPTIONS"); }
以上がPHP バックエンドでクロスドメインのドメイン名を制御し、クロスドメインの画像アップロードを許可する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。