Pdf.js: Menolak untuk mendapatkan tajuk "Terima-Rentang" yang tidak aman dengan url amazon

Dibuat pada 24 Apr 2013  ·  18Komentar  ·  Sumber: mozilla/pdf.js

Saya mencoba menggunakan pdf.js dengan permintaan rentang (pemuatan progresif dokumen pdf), tetapi ketika saya mencoba memuat pdf dari url amazon s3 kesalahan ini muncul di konsol:
Menolak untuk mendapatkan header "Accept-Ranges" yang tidak aman

dan pdf tidak dimuat melalui 206 konten parsial (permintaan rentang) tetapi 200 dan setelah unduhan pdf selesai, dilihat di penampil.

ini adalah contoh url pdf:
https://kotob.s3.amazonaws.com/book.pdf?Signature=irgVfoAZuPPip5kpCesni2MzpLo%3D&Expires=1366576877&AWSAccessKeyId=AKIAILBHXSTPUIBTRMSA

bantuan apa pun

1-other

Komentar yang paling membantu

Saya dapat merepro masalah di server lokal. Saya membuatnya berfungsi dengan meminta server yang menghosting PDF jarak jauh mengembalikan header HTTP berikut:

Access-Control-Allow-Headers: Range
Access-Control-Expose-Headers: Accept-Ranges, Content-Encoding, Content-Length, Content-Range

Semua 18 komentar

Apakah Anda melihat ini dengan viewer.html atau ekstensi firefox?

dengan viewer.html

Saya merasa ini gagal karena Anda membuat permintaan lintas-Asal.

Jika Anda memiliki Chrome, lihat apakah ini berfungsi:

Jalankan Chrome dengan --disable-web-security (http://stackoverflow.com/questions/3102819/chrome-disable-same-origin-policy). Saat memuat file, tambahkan juga #disableWorker=true .

Penutupan. Silakan buka kembali jika masih menjadi masalah.

Terima kasih @mduan atas tanggapannya,
tetapi kesalahan yang sama masih muncul bagi saya, dan untuk menjelaskannya dengan lebih baik, saya menempatkan penampil di dropbox dan ini adalah tautan publik yang dapat Anda coba:
https://dl.dropboxusercontent.com/u/37262502/PDF.js_mduan/pdf.js/web/viewer.html
penampil ini memberikan kesalahan:
error

tetapi ketika saya mengubah jalur pdf dari
DEFAULT_URL=' https://kotob.s3.amazonaws.com/neo.pdf '
ke :
DEFAULT_URL='neo.pdf'
dengan meletakkan file di direktori penampil yang sama, ini berfungsi dengan baik dengan permintaan rentang:

https://dl.dropboxusercontent.com/u/37262502/PDF.js_mduan/pdf.js/web/viewer2.html
dan perhatikan bahwa kami membuat kebijakan CORS dapat diakses dari sumber lain mana pun untuk mendapatkan permintaan.
saya harap itu bisa membantu dalam menjelaskan masalahnya.
dan mohon maaf atas keterlambatan respon saya,

ada bantuan?

Saya dapat merepro masalah di server lokal. Saya membuatnya berfungsi dengan meminta server yang menghosting PDF jarak jauh mengembalikan header HTTP berikut:

Access-Control-Allow-Headers: Range
Access-Control-Expose-Headers: Accept-Ranges, Content-Encoding, Content-Length, Content-Range

terima kasih @mduan atas bantuan Anda, ini berfungsi sekarang.

@mahmoudfelfel : bisakah Anda menutup masalah ini jika masalah Anda sudah diperbaiki? Terima kasih! :)

File Proxy dalam bahasa scripting, ( PHP, RoR, Python atau lainnya) adalah solusi yang sangat mudah.

Saya menemukan kesalahan yang sama. Dan menurut saya ini bisa / harus diperbaiki dalam pdf.js.

Saat memuat pdf dari domain lain, maka milik kita sendiri. Permintaan pra-penerbangan adalah wajib, tidak hanya untuk AWS tetapi juga untuk dokumen Mozilla , direkomendasikan untuk setiap permintaan CORS.

Kemudian Anda dapat menghindari instance proxy tambahan atau semacamnya. Sebagai solusi cepat, saya akan mencoba mengambil permintaan pdf (dengan preflight) untuk saya sendiri dan hanya meneruskan ByteArray ke pdf.js.

Saat memuat pdf dari domain lain, maka milik kita sendiri. Permintaan pra-penerbangan adalah wajib, tidak hanya untuk AWS tetapi juga untuk dokumen Mozilla, direkomendasikan untuk setiap permintaan CORS.

Permintaan preflight CORS dihasilkan oleh XHR secara otomatis tanpa intervensi JS pengguna.

Sebagai solusi cepat, saya akan mencoba mengambil permintaan pdf (dengan preflight) untuk saya sendiri dan hanya meneruskan ByteArray ke pdf.js.

Kedengarannya sebagai solusi yang sempurna: semua sarana komunikasi non-standar (kecuali mendapatkan HTTP/HTTPS biasa tanpa perlu CORS) harus ditangani oleh pengguna. Jika Anda yakin bahwa XHR akan dapat membuat url Anda (file, gumpalan, dengan CORS, dengan header auth, dll) konfigurasikan dengan benar.

Menutup karena tidak akan diperbaiki.

Saya terjebak dengan v0.8.180 dan saya tahu ini adalah masalah lama, meskipun jika itu membantu orang lain, konfigurasi CORS ember S3 berikut memperbaikinya untuk saya:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
        <ExposeHeader>Accept-Ranges</ExposeHeader>
        <ExposeHeader>Content-Range</ExposeHeader>
        <ExposeHeader>Content-Encoding</ExposeHeader>
        <ExposeHeader>Content-Length</ExposeHeader>
    </CORSRule>
</CORSConfiguration>

@jpillora Saya sudah mencoba konfigurasi yang sama di konfigurasi CORS ember S3 kami. Aplikasi ini berfungsi di semua browser, dan FireFox tidak memiliki kesalahan. Webkit (Chrome/Safari) masih mengeluarkan Refused to get unsafe header "Accept-Ranges" .

Saya memang memperhatikan bahwa Accept-Ranges: bytes ada pada permintaan http file pdf, tetapi saya tidak melihat Content-Range atau Content-Encoding bertahan dari konfigurasi ke dalam permintaan http.

Mungkin perlu mengekspos Range selain Content-Range?

Saya mencobanya tanpa keberuntungan. Memutuskan untuk menyepakati masalah ini.

Konfigurasi CORS yang berfungsi dapat ditemukan di sini: https://github.com/mozilla/pdf.js/issues/4530#issuecomment -188059771

Kunci untuk membuat ini berfungsi adalah "rentang" Access-Control-Allow-Headers.

Dalam kasus saya, tetapi untuk streaming konten audio, tajuk ini tidak berfungsi

@simoncpu terima kasih atas temuan Anda!
Saya memiliki masalah yang sangat mirip, tetapi untuk konten audio. Dalam kasus saya, tajuk ini tidak akan berfungsi

{ 'Content-Length': 5751405,
  'Content-Type': 'audio/mpeg',
  'Access-Control-Allow-Origin': '*',
  'Access-Control-Allow-Methods': 'POST, GET, OPTIONS',
  'Access-Control-Allow-Headers': 'Range',
  Expires: 0,
  Pragma: 'no-cache',
  'Cache-Control': 'no-cache, no-store, must-revalidate',
  'Accept-Ranges': 'bytes',
  'Content-Range': 'bytes 120429-240237/5751405' }

tanya di SF juga.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

brandonros picture brandonros  ·  3Komentar

hp011235 picture hp011235  ·  4Komentar

anggikolo11 picture anggikolo11  ·  3Komentar

BrennanDuffey picture BrennanDuffey  ·  3Komentar

timvandermeij picture timvandermeij  ·  4Komentar