使用ng2-pdf-viewer查看其他域的pdf文件(CORS错误)

时间:2019-10-11 22:34:50

标签: angular laravel api cors ng2-pdfjs-viewer

我的设置如下:我有一个Angular前端和一个Laravel后端。 在Angular前端中,我使用ng2-pdf-viewer。 (目前是localhost,将来会有多个域访问所有相同的API)

当我尝试从API网址显示PDF时,出现CORS错误:

  

通过CORS策略阻止从原点“ https://differentURL/storage/foo/bar.pdf”到“ http://localhost:4200”的访存:所请求的资源上没有“ Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。

我已经在laravel中实现了中间件来解决此问题,但没有成功。看起来像这样:

    public function handle($request, Closure $next)
    {
        return $next($request)
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
            ->header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, X-Token-Auth, Accept, Authorization')
            ->header('Access-Control-Allow-Credentials', true);
    }

在“ Kernel.php”中,我添加了以下内容:

    protected $middleware = [
        \App\Http\Middleware\Cors::class,
    ]

    protected $routeMiddleware = [
        'cors' => \App\Http\Middleware\Cors::class,
    ]

“ api.php”看起来像这样:

Route::group(['middleware' => ['cors', 'jwt.verify']], function() {
    Route::get('getPDF', 'FileController@getPDF');
});

不幸的是,它不起作用:-(

0 个答案:

没有答案