跨域问题,纯后端,前端访问的时候可能跨域
问题描述:我有一个接口,偶尔跨域,偶尔不跨域,为什么会出现这个情况?
测试猜测:
1. 请求没请求过的合同,会出现跨域,在请求可能不会
2. 多次频繁的访问接口。也有一次可能不会出现跨域
注:不跨域后在请求就不会跨域了
App\Http\Kernel 文件下的 protected $middleware 加了
\App\Http\Middleware\EnableCrossRequestMiddleware::class,
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Response;
/**
* 跨域中间件
*/
class EnableCrossRequestMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
$header=[
'Access-Control-Allow-Origin' => "*",//允许所有资源跨域
'Access-Control-Allow-Headers' => 'Origin, Content-Type, Cookie, Accept, Authorization',
'Access-Control-Allow-Methods' => 'GET, POST, PATCH, PUT, OPTIONS, DELETE, HEAD',//运行的请求方法
'Access-Control-Allow-Credentials' => 'true'//运行客户端携带证书式访问
];
if ($response instanceof Response) {
foreach ($header as $key => $value) {
$response->header($key, $value);
}
return $response;
}
foreach ($header as $key => $value) {
$response->headers->set($key, $value);
}
return $response;
}
}
推荐文章: