當我用 print_r 檢查 JSON 編碼時,它看起來不錯 => {"expiry":1636191448,"auth":true}
然后我嘗試將它存盤在 cookie 中,但是當我在瀏覽器 cookie 值中看到它時它變成了這樣 => {"expiry":1636191866,"auth":true}

誰能告訴我如何修復它。我不是將它用于權限系統,而是用于其他事情,例如在 javascript 中讀取它,但在嘗試決議它時出現錯誤
Uncaught SyntaxError: Unexpected token % in JSON at position 0 at JSON.parse ()
.
這是我的 php 檔案中的代碼行
if (Cookie::exists(Config::get('client/cookie_name'))) {
$client = json_decode(Cookie::get(Config::get('client/cookie_name')), true);
$expiry = $client['expiry'];
} else {
$client = array (
'expiry' => time() Config::get('client/cookie_expiry')
);
}
$client['auth'] = true;
$client = json_encode($client);
Cookie::update(Config::get('client/cookie_name'), $client, $expiry);
uj5u.com熱心網友回復:
Cookie 通常是 URL 編碼的(但有時會使用不同的編碼)。由于這不是真正的標準化,并且根據規范,只有少數字符必須以某種方式編碼(未指定如何編碼),不同的系統在處理 cookie 編碼時可能采用不同的路由,因此讀取由一個系統使用另一個系統設定的 cookie可能會導致此類問題。
在您的情況下,您可以先呼叫decodeURIComponent該值:
const json = decodeURIComponent(encodedCookieValue)
const data = JSON.parse(json)
進一步閱讀:cookie 值應該進行 URL 編碼嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349088.html
標籤:javascript php json 饼干
