【问题标题】:Enable CORS in lumen在流明中启用 CORS
【发布时间】:2016-07-26 16:18:11
【问题描述】:

我有使用 lumen 开发的 API。我可以使用邮递员获取请求。但是当使用 Jquery.ajax 请求时它不起作用。所以我需要知道如何在 lumen API 中启用 CORS。

【问题讨论】:

    标签: api cors lumen


    【解决方案1】:

    考虑使用以下代码创建一个CorsMiddleware.php 文件。查找详情here.

      <?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;
        }
    }
    

    将其保存在中间件文件夹中后,通过将其添加到您的 bootstap/app.php 文件中启用它,就像这样在中间件列表中

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

    希望对你有帮助。

    【讨论】:

    • 不知道为什么使用包Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8000/api//stocks/company/info?company=. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing)添加后仍然显示错误
    • 我已经在我的项目中添加了你的建议 corsmiddleware,但仍然出现同样的错误,有什么建议吗?谢谢。
    • 当您的 api 出现错误时,有时可能会生成 CORS 错误消息。在这种情况下,该消息不是由于缺少 CORS 设置,而是由于您的 api 中存在需要修复的错误。在将 API 集成到您的客户端应用程序之前,请尝试独立正确地测试您的 API。
    • 为我工作。 !
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-04-01
      • 1970-01-01
      • 2018-04-13
      • 2018-05-12
      • 2021-03-29
      • 2017-01-23
      • 2020-02-18
      • 2013-06-12
      • 2013-01-06
      相关资源
      最近更新 更多