使用Laravel作为后端时,Angular Package simple-pdf-viewer'Access-Control-Allow-Origin'CORS问题

时间:2018-07-11 11:14:41

标签: angular laravel pdf cors

我正在开发需要在网页上显示PDF的角度应用程序。为此,我正在使用软件包 simple-pdf-viewer
当我提供local-path 之类的本地PDF文件的路径时,此软件包可以正常工作 ,但是当我给出诸如live-path之类的活动服务器的路径时,则会出现错误

  

localhost /:1无法加载https://booksapi.alphawods.com/storage/app/pdf-test.pdf:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问来源“ http://localhost:4200”。

我使用 Laravel 作为后端,而 Angular 在前端。通常,这是Laravel常见的CORS问题,我已经对其进行了配置,并且我对服务器的所有请求都工作正常。

这是服务器上正在使用的CORS文件的屏幕截图。 cors

这是 simple-pdf-viewer 代码,正在调用pdf资源

public openUrl(url: string, startAt: SimplePDFBookmark = SimplePDFBookmark.EMPTY_BOOKMARK) {debugger
  this.http.get(url, { responseType: 'arraybuffer',withCredentials: false })
  .subscribe((file: ArrayBuffer) => {
    this.openDocument(new Uint8Array(file), startAt);
  }, error => {
    this.onError.emit(error);
    this.loaded = false;
  });}

我已经在GitHub上阅读了与此相关的问题,但找不到解决方案。这里是该问题的链接related-issue

1 个答案:

答案 0 :(得分:0)

您需要配置的另一件事是您的Web服务器(nginx / apache)允许CORS。仅在请求到达您的CORS应用时,才能在Laravel中间件上添加Laravel配置。由于您是直接访问文件,因此永远不会添加其他标头,因为它没有命中任何Laravel路由,对吗?因此,请求将仅由Web服务器处理。

我希望这会给您一些提示。