我正在开发需要在网页上显示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
答案 0 :(得分:0)
您需要配置的另一件事是您的Web服务器(nginx
/ apache
)允许CORS
。仅在请求到达您的CORS
应用时,才能在Laravel
中间件上添加Laravel
配置。由于您是直接访问文件,因此永远不会添加其他标头,因为它没有命中任何Laravel
路由,对吗?因此,请求将仅由Web服务器处理。
我希望这会给您一些提示。