Bagaimana cara membagikan cookie lintas asal? Lebih khusus lagi, bagaimana cara menggunakan Set-Cookie
tajuk yang dikombinasikan dengan tajuk Access-Control-Allow-Origin
?
Berikut penjelasan situasi saya:
Saya mencoba menyetel cookie untuk API yang dijalankan localhost:4000
di aplikasi web yang dihosting di localhost:3000
.
Sepertinya saya menerima header respons yang benar di browser, tetapi sayangnya header tersebut tidak berpengaruh. Ini adalah tajuk tanggapan:
HTTP / 1.1 200 Oke Access-Control-Allow-Origin: http: // localhost: 3000 Bervariasi: Asal, Terima-Enkode Set-Cookie: token = 0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; Usia Maks = 86400; Domain = localhost: 4000; Jalur = /; Kedaluwarsa = Sel, 19 Sep 2017 21:11:36 GMT; HttpOnly Jenis Konten: application / json; charset = utf-8 Panjang Konten: 180 ETag: W / "b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ" Tanggal: Sen, 18 Sep 2017 21:11:36 GMT Koneksi: tetap hidup
Selain itu, saya dapat melihat cookie di bawah Response Cookies
saat saya memeriksa lalu lintas menggunakan tab Jaringan alat pengembang Chrome. Namun, saya tidak dapat melihat cookie disetel di tab Aplikasi di bawah Storage/Cookies
. Saya tidak melihat kesalahan CORS, jadi saya berasumsi saya melewatkan sesuatu yang lain.
Ada saran?
Perbarui I:
Saya menggunakan modul permintaan di aplikasi React-Redux untuk mengeluarkan permintaan ke /signin
titik akhir di server. Untuk server saya menggunakan express.
Server ekspres:
res.cookie ('token', 'xxx-xxx-xxx', {maxAge: 86400000, httpOnly: true, domain: 'localhost: 3000'})
Permintaan di browser:
request.post ({uri: '/ signin', json: {userName: 'userOne', password: '123456'}}, (err, response, body) => { // melakukan sesuatu })
Perbarui II:
Sekarang saya menyetel header permintaan dan tanggapan seperti orang gila sekarang, memastikan bahwa mereka ada baik dalam permintaan maupun tanggapan. Berikut tangkapan layarnya. Perhatikan header Access-Control-Allow-Credentials
, Access-Control-Allow-Headers
, Access-Control-Allow-Methods
dan Access-Control-Allow-Origin
. Melihat masalah yang saya temukan di github Axios , saya mendapat kesan bahwa semua header yang diperlukan sekarang telah disetel. Namun, masih belum berhasil ...