在流明中启用CORS

Ish*_*ndo 4 api cors lumen

我有使用流明开发的API。我可以使用邮递员得到请求。但是当使用Jquery.ajax进行请求时,它不起作用。因此,我需要知道如何在流明API中启用CORS。

The*_*cle 9

考虑CorsMiddleware.php使用以下代码创建文件。在此处查找详细信息。

  <?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)
    {
        $headers = [
            'Access-Control-Allow-Origin'      => '*',
            'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Credentials' => 'true',
            'Access-Control-Max-Age'           => '86400',
            'Access-Control-Allow-Headers'     => 'Content-Type, Authorization, X-Requested-With'
        ];

        if ($request->isMethod('OPTIONS'))
        {
            return response()->json('{"method":"OPTIONS"}', 200, $headers);
        }

        $response = $next($request);
        foreach($headers as $key => $value)
        {
            $response->header($key, $value);
        }

        return $response;
    }
}
Run Code Online (Sandbox Code Playgroud)

将其保存在中间件文件夹中后,通过将其添加到您bootstap/app.php的中间件列表中的文件中来启用它,如下所示

$app->middleware([
    ...
    App\Http\Middleware\CorsMiddleware::class // Add this

]);
Run Code Online (Sandbox Code Playgroud)

希望对您有所帮助。

  • 有时,当您的 api 出现错误时,可能会生成 CORS 错误消息。在这种情况下,该消息不是由于缺少 CORS 设置,而是由于您的 api 中存在需要修复的错误。在将 api 集成到您的客户端应用程序之前,请尝试独立正确地测试您的 api。 (2认同)

Rya*_*yan 7

我建议使用 Barry vd 的 CORS 包。Heuvel:https : //github.com/barryvdh/laravel-cors#lumen

它具有可配置性并支持 ajax 的飞行前请求处理。