iT邦幫忙

1

javascript-想請問這樣json的資料怎麼設定cookie???

  • 分享至 

  • xImage

各位好~
我知道可以用document.cookie=去設定cookie!
不過我是用extension去得到的,所以有一大串好幾個,我在想是不是要搞個function去寫!?
舉例一下大概長這樣:

[
{
    "domain": ".xxxxxxx.cc",
    "expirationDate": 1707798734,
    "hostOnly": false,
    "httpOnly": false,
    "name": "__gads",
    "path": "/",
    "sameSite": "unspecified",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "ID=8sdgsfdgdfsg353-fsdgfsdgsfdgfsdgsfgw",
    "id": 1
},
{
    "domain": ".cdfgdfdfgd.cc",
    "expirationDate": 1707798734,
    "hostOnly": false,
    "httpOnly": false,
    "name": "__gpi",
    "path": "/",
    "sameSite": "unspecified",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "UID=0gdfgdfg8d:T=1674102734:RT=1674124997:S=ALNI_dfgtScvL_wJgUVJQl-tVHA",
    "id": 2
},
]

想請問該怎麼撰寫一個function,
讓我一次可以灌這麼大串(原本的data可能還有六串)的cookie呢??
謝謝各位前輩們~~

akajoke iT邦新手 5 級 ‧ 2023-01-29 21:15:20 檢舉
自己來解答個,可能要用postman或ajax
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-02-07 08:43:02
最佳解答

參考看看

function setCookies(cookiesArray) {
  cookiesArray.forEach(function(cookie) {
    document.cookie = `${cookie.name}=${cookie.value}; expires=${new Date(cookie.expirationDate * 1000).toUTCString()}; path=${cookie.path}; domain=${cookie.domain};`;
  });
}

將要設置的cookie數組作為參數傳遞給函數即可:

setCookies([
  {
    "domain": ".xxxxxxx.cc",
    "expirationDate": 1707798734,
    "hostOnly": false,
    "httpOnly": false,
    "name": "__gads",
    "path": "/",
    "sameSite": "unspecified",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "ID=8sdgsfdgdfsg353-fsdgfsdgsfdgfsdgsfgw",
    "id": 1
  },
  {
    "domain": ".cdfgdfdfgd.cc",
    "expirationDate": 1707798734,
    "hostOnly": false,
    "httpOnly": false,
    "name": "__gpi",
    "path": "/",
    "sameSite": "unspecified",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "UID=0gdfgdfg8d:T=1674102734:RT=1674124997:S=ALNI_dfgtScvL_wJgUVJQl-tVHA",
    "id": 2
  },
]);
akajoke iT邦新手 5 級 ‧ 2023-02-24 15:47:07 檢舉

最近去碰其他東西,現在才看到這個解答!非常讚,很棒!
馬上選為最佳解答提供未來人士學習!

0
jeffeux
iT邦新手 4 級 ‧ 2023-01-26 03:15:54

用 map 不好嗎?
不過我不太理解這個 array 是怎麼來的就是
例如我這邊得到的 document.cookie 是

_gcl_au=1.1.1334778127.1672340871; _ga=GA1.1.1416806687.1651757520; _ga_6182VBHV8Y=GS1.1.1672341045.1.1.1672341208.0.0.0; __utmz=147059567.1674535345.157.131.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __utma=147059567.2060415170.1645350932.1674537149.1674673523.159; __utmc=147059567; __utmt=1; __utmb=147059567.24.10.1674673523; XSRF-TOKEN=eyJpdiI6ImN...(略)...lYzJkOTk5Y2YwYTZjZDkxIn0%3D

總感覺

const getDocumentCookie = arrayAbove => (
    arrayAbove
      .map(i => `${i.name}=${i.value}`)
      .join('; '));

之類的東西可以解決?

akajoke iT邦新手 5 級 ‧ 2023-01-27 01:11:30 檢舉

痾不好意思你用的那個跟我的長得不同,痾,那個,我其實,文章有說是extension拿的。對,文章有寫(汗...

你從devtool拿到的cookie不會完整,會有漏。
所以用這個來設定基本上沒什麼用(汗...
還是謝謝您提出的想法哦!可以給其他人當參考!

我要發表回答

立即登入回答