thinkphp6 がグローバル ミドルウェアを通じてクロスドメインの問題を解決する方法について詳しく説明した記事

藏色散人
リリース: 2021-09-19 16:49:57
転載
4713 人が閲覧しました

次のthinkphp フレームワークチュートリアル コラムでは、thinkphp6 がグローバル ミドルウェアを通じてクロスドメインの問題をどのように解決するかを紹介します。

tp6 グローバルミドルウェアによるクロスドメインの問題の解決

tp6 公式 Web サイトにはクロスドメイン解決方法が提供されていますが、私が使用した場合は使用できません直接。 (私の姿勢が悪いのかもしれませんが)

フロントエンドが Hbuildert で ajax リクエストを送信し、クロスドメインが発生します。

Get request: バックグラウンド設定で解決できます。
'Access-Control-Allow-Origin: *'。
ログイン後にコピー
Post リクエスト: OPTIONS リクエストが発生します。 ajaxリクエストにヘッダー情報を追加します。
header:{
    'Content-Type':'application/x-www-form-urlencoded'
}
ログイン後にコピー

ミドルウェアの定義

<?php declare (strict_types = 1);

namespace app\middleware;
use think\Response;

/**
 * 全局跨域请求处理
 * Class CrossDomain
 * @package app\middleware
 */

class CrossDomain
{
    public function handle($request, \Closure $next)
    {
        header(&#39;Access-Control-Allow-Origin: *&#39;);
        header(&#39;Access-Control-Max-Age: 1800&#39;);
        header(&#39;Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE&#39;);
        header(&#39;Access-Control-Allow-Headers: Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-CSRF-TOKEN, X-Requested-With, Token&#39;);
        if (strtoupper($request->method()) == "OPTIONS") {
            return Response::create()->send();
        }

        return $next($request);
    }
}
ログイン後にコピー

middleware.phpで定義したミドルウェアを追加します

thinkphp6 がグローバル ミドルウェアを通じてクロスドメインの問題を解決する方法について詳しく説明した記事

次にクロスドメイン問題なく動作します!

以上がthinkphp6 がグローバル ミドルウェアを通じてクロスドメインの問題を解決する方法について詳しく説明した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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