Проблема CORS пакета Angular simple-pdf-viewer «Access-Control-Allow-Origin» при использовании Laravel в качестве бэкэнда

Я разрабатываю угловое приложение, которому необходимо отображать PDF-файл на веб-странице. Для этого я использую пакет simple-pdf-viewer.
Этот пакет отлично работает, когда я указываю путь к своему локальному PDF-файл, например local-path , но когда я указываю путь к моему рабочему серверу, например live-path, то выдает ошибку

localhost/:1 Не удалось загрузить https://booksapi.alphawods.com/storage/app/pdf-test.pdf: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Таким образом, доступ к источнику 'http://localhost:4200' запрещен.

Я использую Laravel в качестве серверной части, а Angular — в качестве внешней. Обычно это обычная проблема CORS для Laravel, которую я уже настроил, и все мои запросы к серверу работают нормально.

Вот скриншот рабочего файла 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, но не смог найти решение. Вот ссылка на эту проблему связанная проблема


person waqar18    schedule 11.07.2018    source источник


Ответы (1)


Еще одна вещь, которую вам нужно настроить, это ваш веб-сервер (nginx/apache), чтобы разрешить CORS. Добавление конфигурации CORS в ПО промежуточного слоя Laravel будет работать только в том случае, если запрос попадает в ваше приложение Laravel. Поскольку вы обращаетесь к файлу напрямую, дополнительные заголовки никогда не будут добавлены, потому что они не затрагивают никаких Laravel маршрутов, верно? Таким образом, запрос будет просто обработан веб-сервером.

Я надеюсь, что это дает вам некоторые подсказки.

person Dharma Saputra    schedule 11.07.2018