Angular Package simple-pdf-viewer 'Access-Control-Allow-Origin' ปัญหา CORS ในขณะที่ใช้ 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' บนทรัพยากรที่ร้องขอ Origin 'http://localhost:4200' จึงไม่ได้รับอนุญาตให้เข้าถึง

ฉันใช้ Laravel เป็นแบ็คเอนด์ และ Angular อยู่ที่ส่วนหน้า โดยปกตินี่เป็นปัญหา CORS ทั่วไปของ Laravel ซึ่งฉันได้กำหนดค่าไว้แล้ว และคำขอทั้งหมดของฉันไปยังเซิร์ฟเวอร์ทำงานได้ดี

นี่คือภาพหน้าจอของไฟล์ 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