我感覺document.cookie = "mySessionCookie=mySessionToken"
沒有在瀏覽器中設置。Document.cookie的setter是否在Web瀏覽器中異步?
更確切地說,這裏是我的情況:
- 我登錄
- 我想用JavaScript來註銷。
- 所以我設置了,例如
document.cookie = "mySessionCookie=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT"
。 - 然後我打電話
window.location.reload()
確認我已註銷。
它主要工作,但很多時候,在調用window.location.reload()
之前,瀏覽器似乎沒有足夠的時間來設置新的cookie值。
除非我在代碼中做錯了什麼,否則這種行爲暗示document.cookie = "value"
不會在同一個堆棧上執行(因此,它可能本身不是異步的,但在與其餘部分一起使用時不會發生異步行爲碼)。
所以,我的問題是,document.cookie = "value"
可以在不同的堆棧上執行?
不... javascript是單線程的並且設置cookie是同步的。更可能你的問題是別的東西 – charlietfl
@charlietfl,謝謝你確認這一點。那麼我的代碼肯定有問題。 – focorner