จะแบ่งปันคุกกี้ข้ามแหล่งกำเนิดได้อย่างไร? โดยเฉพาะอย่างยิ่งวิธีใช้Set-Cookie
ส่วนหัวร่วมกับส่วนหัวAccess-Control-Allow-Origin
?
นี่คือคำอธิบายเกี่ยวกับสถานการณ์ของฉัน:
ฉันกำลังพยายามที่จะตั้งค่าคุกกี้สำหรับ API ที่ทำงานอยู่ในในเว็บแอปที่โฮสต์บนlocalhost:4000
localhost:3000
ดูเหมือนว่าฉันจะได้รับส่วนหัวการตอบกลับที่ถูกต้องในเบราว์เซอร์ แต่น่าเสียดายที่ไม่มีผลใด ๆ นี่คือส่วนหัวการตอบกลับ:
HTTP / 1.1 200 ตกลง Access-Control-Allow-Origin: http: // localhost: 3000 แตกต่างกันไป: ต้นทางยอมรับการเข้ารหัส ชุดคุกกี้: token = 0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; อายุสูงสุด = 86400; โดเมน = localhost: 4000; เส้นทาง = /; Expires = อ. 19 ก.ย. 2560 21:11:36 GMT; HttpOnly ประเภทเนื้อหา: application / json; charset = utf-8 ความยาวเนื้อหา: 180 ETag: W / "b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ" วันที่: จันทร์ที่ 18 ก.ย. 2560 21:11:36 GMT การเชื่อมต่อ: ให้มีชีวิตอยู่
นอกจากนี้ฉันสามารถเห็นคุกกี้ภายใต้Response Cookies
เมื่อฉันตรวจสอบปริมาณการใช้งานโดยใช้แท็บเครือข่ายของเครื่องมือสำหรับนักพัฒนาของ Chrome แต่ฉันไม่เห็นคุกกี้ถูกตั้งค่าในแท็บแอปพลิเคชันด้านStorage/Cookies
ล่าง ฉันไม่เห็นข้อผิดพลาด CORS ดังนั้นฉันคิดว่าฉันพลาดอย่างอื่น
ข้อเสนอแนะใด ๆ ?
อัปเดตฉัน:
ฉันใช้โมดูลคำขอในแอป React-Redux เพื่อส่งคำขอไปยัง/signin
ปลายทางบนเซิร์ฟเวอร์ สำหรับเซิร์ฟเวอร์ฉันใช้ Express
เซิร์ฟเวอร์ด่วน:
res.cookie ('โทเค็น', 'xxx-xxx-xxx', {maxAge: 86400000, httpOnly: true, โดเมน: 'localhost: 3000'})
ขอในเบราว์เซอร์:
request.post ({uri: '/ signin', json: {userName: 'userOne', password: '123456'}}, (err, response, body) => { // ทำของ })
อัปเดต II:
ตอนนี้ฉันตั้งค่าคำขอและส่วนหัวการตอบกลับอย่างบ้าคลั่งตรวจสอบให้แน่ใจว่ามีอยู่ทั้งในคำขอและการตอบกลับ ด้านล่างนี้คือภาพหน้าจอ ขอให้สังเกตส่วนหัวAccess-Control-Allow-Credentials
, Access-Control-Allow-Headers
, และAccess-Control-Allow-Methods
Access-Control-Allow-Origin
เมื่อดูปัญหาที่ฉันพบในgithub ของ Axiosฉันรู้สึกว่าตอนนี้ตั้งค่าส่วนหัวที่จำเป็นทั้งหมดแล้ว กระนั้นก็ยังไม่มีโชค ...