Laravel POST 请求 Cors 没有“Access-Control-Allow-Origin”

kal*_*npw 3 php cors laravel vue.js axios

当我尝试 POST 到给定的 url 时,当前收到一条错误消息。GET 在同一个域上工作正常,这是我的错误:

CORS 策略阻止了在 ' http://localhost:8000/api/users/login '处访问 XMLHttpRequest来自源 ' http://localhost:8080 ' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:否请求的资源上存在“Access-Control-Allow-Origin”标头。

我发现无数问题记录了同样的问题,所有这些问题都包含修改我的 Cors 中间件的变体。

目前我的 CORS 中间件如下所示:

class Cors
{
    public function handle($request, Closure $next)
    {
        if ($request->isMethod('OPTIONS')) {
            $response = Response::make();
        } else {
            $response = $next($request);
        }
        return $response
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
            ->header('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Application');
    }
}
Run Code Online (Sandbox Code Playgroud)

错误指出 No 'Access-Control-Allow-Origin' 我相信我->header('Access-Control-Allow-Origin', '*')应该处理它,因为 * 是我理解的通配符。我错过了这里有什么不同的问题吗?Stack 是 Laravel 后端,VueJS 前端使用 Axios 进行 HTTP 请求(如果相关的话)。

编辑:这个问题是独一无二的,因为我已经在大多数答案中特别推荐了标题:

->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
Run Code Online (Sandbox Code Playgroud)

并且仍然收到错误。

小智 6

这里有两个包可以帮助你在 Laravel 中处理 CORS,你可以选择一个


  1. https://github.com/barryvdh/laravel-cors
  2. https://github.com/spatie/laravel-cors