在Laravel项目的app/Http/Middleware/
目录下新建一个文件名为Cors.php的中间件文件。
添加以下代码到Cors.php:
namespace App\Http\Middleware;
use Closure;
class Cors
{
public function handle($request, Closure $next)
{
$response = $next($request);
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->headers->set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
$response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With');
return $response;
}
}
app/Http/Kernel.php
文件的$middleware
数组中添加以下代码:\App\Http\Middleware\Cors::class
该代码用于将新建的Cors中间件加入到全局的中间件列表中。
const headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token };
const options = { headers, observe: 'response' as 'body' };
return this.http.get(url, options);
其中,token为认证用的token,url为请求的地址,ResponseType为期望的响应类型。
通过以上操作,就可以解决Angular和Laravel项目中的CORS策略问题了。