之前在做三端分離的時候,做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跨域訪問了。