1. Header クラス
thinkphp フレームワークでは、Header クラスを使用して応答ヘッダーを設定し、クロスドメイン リクエストの機能を実現できます。具体的な方法は、コントローラー メソッドに次のコードを追加することです。
header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
このうち、コードの最初の行は、すべてのソースからのクロスドメイン リクエストが許可されること、または特定のソースに設定できることを示しています。 ; コードの 2 行目は、クロスドメイン要求が許可されていることを示します。 要求によって伝送される要求ヘッダー情報。これを設定した後、基本的なクロスドメイン リクエストを実装できます。
2. サードパーティ ライブラリ
Header クラスを使用してクロスドメイン リクエストを設定することに加えて、サードパーティ ライブラリを使用してこれを簡素化することもできます。プロセス。以下では、主流の CORS (Cross-Origin Resource Sharing) ライブラリ cors 拡張を例として、サードパーティ ライブラリを使用してクロスドメイン リクエストを実装する方法を紹介します。
composer require topthink/think-cors
<?php return [ // 允许的请求域名 'allow_origin' => ['*'], // 允许的请求头信息 'allow_headers' => 'Origin, X-Requested-With, Content-Type, Accept', // 允许的请求方法 'allow_methods' => 'GET, POST, PUT, DELETE, PATCH', // 是否允许发送cookie 'allow_credentials' => true, // 跨域请求缓存时间 'max_age' => 3600, ];
このうち、$allow\_origin は、許可されたリクエストのドメイン名。特定のドメイン名に設定することも、ワイルドカード「*」に設定することもできます。$allow\_headers は許可されたリクエスト ヘッダー情報を表し、$allow\_methods は許可されたリクエスト メソッドを表します。$allow\_credentialsは Cookie の送信が許可されているかどうかを表し、$ max\_age はクロスドメイン要求のキャッシュ時間を表します。
return [ // ... 'middleware' => [ // ... \think\middleware\Cors::class, ], ];
use think\facade\Cors; public function index() { Cors::allowAllOrigin(); return json(['code' => 200, 'msg' => 'success']); }
これを設定すると、クロスドメインリクエストを実装できるようになります。
以上がthinkphp がクロスドメインリクエストを完了する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。