ホームページ > PHPフレームワーク > ThinkPHP > thinkphp がクロスドメインリクエストを完了する方法

thinkphp がクロスドメインリクエストを完了する方法

PHPz
リリース: 2023-04-13 16:22:23
転載
3371 人が閲覧しました

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 拡張を例として、サードパーティ ライブラリを使用してクロスドメイン リクエストを実装する方法を紹介します。

  1. #cors 拡張機能のインストール

コマンド ライン ウィンドウを開き、次のコマンドを実行します:

composer require topthink/think-cors
ログイン後にコピー

    # #Configuration cors extension
  1. プロジェクトの config フォルダーに cors.php ファイルを作成し、次のコードを入力します。
<?php

return [
    // 允许的请求域名
    &#39;allow_origin&#39;      => [&#39;*&#39;],
    // 允许的请求头信息
    &#39;allow_headers&#39;     => &#39;Origin, X-Requested-With, Content-Type, Accept&#39;,
    // 允许的请求方法
    &#39;allow_methods&#39;     => &#39;GET, POST, PUT, DELETE, PATCH&#39;,
    // 是否允许发送cookie
    &#39;allow_credentials&#39; => true,
    // 跨域请求缓存时间
    &#39;max_age&#39;           => 3600,
];
ログイン後にコピー

このうち、$allow\_origin は、許可されたリクエストのドメイン名。特定のドメイン名に設定することも、ワイルドカード「*」に設定することもできます。$allow\_headers は許可されたリクエスト ヘッダー情報を表し、$allow\_methods は許可されたリクエスト メソッドを表します。$allow\_credentialsは Cookie の送信が許可されているかどうかを表し、$ max\_age はクロスドメイン要求のキャッシュ時間を表します。

    構成ファイルを変更します
  1. プロジェクトの config フォルダーで app.php ファイルを見つけます。構成は次のとおりです。
return [
    // ...
    &#39;middleware&#39; => [
        // ...
        \think\middleware\Cors::class,
    ],
];
ログイン後にコピー

    cors 拡張機能の呼び出し
  1. クロスドメイン リクエストを必要とするコントローラー メソッドでは、cors 拡張機能のメソッドを直接呼び出して、クロスドメインリクエストの設定:
use think\facade\Cors;

public function index() {
    Cors::allowAllOrigin();
    return json([&#39;code&#39; => 200, &#39;msg&#39; => &#39;success&#39;]);
}
ログイン後にコピー

これを設定すると、クロスドメインリクエストを実装できるようになります。

以上がthinkphp がクロスドメインリクエストを完了する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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