imgur有一個有趣的功能
- 您可以使用https://imgur.com/upload創建帖子
- 上傳完成后,您將被重定向到帖子的頁面,您可以在其中根據需要編輯標題。如果您重繪 頁面/在另一個選項卡中訪問它 - 編輯標題的能力就消失了。
Imgur 是如何做到這一點的?我的猜測是 cookie 以某種方式涉及,但我不確定。
uj5u.com熱心網友回復:
- 使用PHP,您可以使用它
$_SESSION來實作這一點 - 使用JS,您可以使用localStorage來實作這一點
- 使用JS,您可以使用URLSearchParams來實作這一點
- 使用next/react,您可以使用useState來實作這一點
在創建時保存可編輯資源的 id,在渲染時如果匹配啟用編輯并重置保存的可編輯 id。
您可以偽造重定向,這意味著顯示編輯頁面并將查看頁面放入 URL
在重定向時,設定一個 cookie:https ://remix.run/docs/en/v1/api/remix#redirect
return redirect(`resource/$id`, {
headers: {
"Set-Cookie": `editable:$id`,
},
});
然后,使用Cookie API檢查該 cookie。
uj5u.com熱心網友回復:
您可以檢查導航型別。在https://stackoverflow.com/a/53307588/14250290上查看@Илья Зеленько 的答案
您正在尋找的型別是reload并且back_forward您可能希望在后端發生一些事情以防止惡意用戶。
另一種選擇是在發布帖子時從后端發送令牌,并且為了編輯帖子,需要發回確切的令牌。只是不要將令牌保存在任何持久存在的東西中,并且在重繪 或新選項卡上它會被更新。
uj5u.com熱心網友回復:
如果您不想使用 cookie 或會話,那么實作此目的的一種方法是使用 useState。將帖子創建/上傳時的狀態更新為 true(最初為 false)。當用戶重繪 頁面時,該狀態將自動為 false,因為該組件剛剛呈現。注意:- 如果您不想使用 state,您也可以使用 redux 來實作此解決方案。之后使用該狀態或 redux 狀態來啟用/禁用編輯帖子的能力。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/489674.html
標籤:javascript 反应 会议 会话变量 混音运行
下一篇:熊貓不是全部,而是兩個True
