หลังจากอัปเกรดเป็น 21.10 ฉันพบปัญหา CORS กับเพจ HTML ที่ใช้ Javascript fetch() เพื่อรับเพจจากเซิร์ฟเวอร์ หน้าเดียวกันไม่มีปัญหากับ Chromium เวอร์ชัน 21.10 (หรือ Firefox หรือ Safari บน OSX)
เมื่อดูที่ตัวตรวจสอบความแตกต่างน่าจะเป็นที่ "Snap Firefox":
- มีค่าแตกต่างกันสำหรับส่วนหัว REFERER (ย่อมาจาก http://127.0.0.1:5000/ แทนที่จะเป็น http://localhost:5000/resource/527706d7e339cac99572cad1b7b789c8 ในเบราว์เซอร์ที่ใช้งานได้);
- มีส่วนหัว ORIGIN ที่มีค่า http://127.0.0.1:5000ซึ่งไม่มีในเบราว์เซอร์ที่ใช้งานได้
ใครมีความคิดใด ๆ ว่าทำไม Snap Firefox ถึงทำเช่นนี้และจะแก้ไขได้อย่างไร?
อัปเดต / ตอบ:
tl/dr; มันเดือดลงไปถึงความแตกต่างระหว่าง 127.0.0.1 และ localhost แต่มีการหักมุม
ประการแรก ข้อผิดพลาด CORS จะเกิดขึ้นเฉพาะเมื่อ 127.0.0.1 ไม่ใช่กับ localhost ฉันใช้ localhost ในการพัฒนา ดังนั้นฉันจึงไม่ทราบถึงความแตกต่างนี้
ประการที่สอง Snap Firefox ไม่ชอบ "localhost:5000" นั่นเป็นเหตุผลที่ฉันพบว่าหน้านี้ใช้งานไม่ได้มันต้องการให้คุณเพิ่มโปรโตคอล -> "http://localhost:5000" ใช้งานได้จริง เห็นได้ชัดว่าไม่มีกฎใดที่ระบุว่า localhost ต้องแก้ไขเป็น http://localhost ดังนั้น Snap Firefox จึงไม่ผิด
อย่างไรก็ตาม Firefox บน OS X ทำ ยอมรับ "localhost:5000" (โดยนำหน้า http:// โดยอัตโนมัติ) - เช่นเดียวกับ Safari บน OS X หรือ Chromium บน Ubuntu ดูเหมือนว่า Snap Firefox เป็นเพียงหนึ่งเดียวที่มีอยู่ ไม่ เพิ่มสตริง http:// และฉันค่อนข้างแน่ใจว่านี่คือการเปลี่ยนแปลงระหว่าง Ubuntu 20.04 และ 20.10
เพื่อความสอดคล้องกัน ฉันขอยืนยันว่า Snap Firefox ควรเปลี่ยนกลับเป็นพฤติกรรมแบบเก่า (ซึ่งสอดคล้องกับ OS X Firefox) แต่อาจมีเหตุผลดีๆ ที่จะไม่ทำเช่นนั้น