laravel ajax跨域 中间件
路由在api.php中:Route::group(['middleware' => ['cors']], function () {Route::post('/xxx', "Api\xxxController@xxx");});定义中间件CorsMiddleware定义位置:app/Http/Middleware/CorsMiddleware.phpCors...
·
路由在api.php中:
Route::group(['middleware' => ['cors']], function () {
Route::post('/xxx', "Api\xxxController@xxx");
});
定义中间件CorsMiddleware
定义位置:
app/Http/Middleware/CorsMiddleware.php
CorsMiddleware内容
<?php
namespace App\Http\Middleware;
use Closure;
class CorsMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
$origin = $request->server('HTTP_ORIGIN') ? $request->server('HTTP_ORIGIN') : '';
$allow_origin = [
'http://xxx.com',//可允许访问的域名
];
if (in_array($origin, $allow_origin)) {
$response->header('Access-Control-Allow-Origin', $origin);
$response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN');
$response->header('Access-Control-Expose-Headers', 'Authorization, authenticated');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
$response->header('Access-Control-Allow-Credentials', 'true');
}
return $response;
或者是
if ($request->isMethod('OPTIONS')) {
$response = response('', 200);
} else {
$response = $next($request);
}
if (!method_exists($response, 'header')) {
return $response;
}
$response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, PATCH, DELETE, OPTIONS');
$response->header(
'Access-Control-Allow-Headers',
'Origin, Content-Type, Content-Length, Cookie, X-CSRF-TOKEN, X-Requested-With, Accept, Authorization, X-XSRF-TOKEN, Token'
);
$response->header('Access-Control-Allow-Origin', '*');
$response->header('Access-Control-Max-Age', 86400);
return $response;
}
}
在app/Http/Kernel.php文件的$middleware中添加这个中间件
protected $middleware = [
.........,
\App\Http\Middleware\CorsMiddleware::class//加入此句
];
$routeMiddleware中添加
protected $routeMiddleware = [
......,
'cors'=> \App\Http\Middleware\CorsMiddleware::class
];
$middlewareGroups中添加
protected $middlewareGroups = [
'web' => [
.......
],
'token' => [
......
],
'api' => [
..........,
'cors',//加入此句
],
];
参考:https://blog.csdn.net/qq_32080545/article/details/84641826

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)