ThinkPHP5.1 Ajax跨域問題

之前在做三端分離的時候,做CMS遇到了AJAX跨域問題,現在將記錄一下thinkphp5.1的解決方法。

 

thinkphp具體版本爲5.1.36

 

首先在命令行切換到項目文件夾裏,輸入以下命令生成一個名稱爲CORS的中間件。

php think make:middleware CORS

 

生成的中間件位於app\http的文件夾下

打開CORS.php文件,鍵入以下代碼

<?php

namespace app\http\middleware;

use think\facade\Request;

class CORS
{
    public function handle($request, \Closure $next)
    {

        header('Access-Control-Allow-Origin: *');
        header('Access-Control-Allow-Headers: token,Origin, X-Requested-With, Content-Type, Accept');
        header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE');
        dump($request);
        if (Request::isOptions()) {
            return response('',200);
        }

        return $next($request);
    }
}

接着需要註冊中間件

我這裏是在模塊下創建middleware.php的配置文件裏,寫入了以下配置

 

<?php

// +----------------------------------------------------------------------
// | 中間件配置
// +----------------------------------------------------------------------
return [

    \app\http\middleware\CORS::class

];

至此就可以使用ajax跨域訪問了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章