首頁 > php框架 > ThinkPHP > 主體

一文詳解thinkphp6如何透過全域中間件解決跨域問題

藏色散人
發布: 2021-09-19 16:49:57
轉載
4715 人瀏覽過

下面thinkphp框架教學欄位將介紹thinkphp6如何透過全域中間件解決跨域問題,希望對需要的朋友有幫助!

tp6 透過全域中間件 解決跨域問題

tp6官網有提供跨域決絕方法,當我直接使用無法使用。 (可能我用的姿勢不對)。

前端在Hbuildert中發送ajax請求,發生跨域。

get請求:可以透過背景設定解決。
'Access-Control-Allow-Origin: *'。
登入後複製
post請求:會發生OPTIONS請求。在ajax請求中加入一個header頭資訊。
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中文網其他相關文章!

相關標籤:
php
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板