简体   繁体   中英

javascript - how to delete strange cookie with empty value?

Accidentally my webpage created strange cookie with empty value (maybe some sort of exception that value given to my cookie_create(cname,cvalue) function was empty string cvalue="", but sorry, I don't know how to reproduce this). (Of course, I will in future add some lines to handle exception when cvalue==""), but now I can't delete this cookie, no way, from javasctript console (I don't want to erase all browser history+cookie data, so I need to do it from console). I execute

document.cookie

the output is

"dGVzdF9tYWx5=eyJ1c3Jfc19pbnB1dCI6Ijk0MCIsIm04X3BlcmlvZF9zbGlkZXIiOiIyMCIsInJldm1zX2lucHV0IjoiMCIsInYxX3NlbGVjdCI6IjEiLCJtOF9hbmdsZTFfbWluX3NsaWRlciI6Ii0zIiwibThfYW5nbGUxX21heF9zbGlkZXIiOiIzIiwidjJfc2VsZWN0IjoiMiIsIm04X2FuZ2xlMl9taW5fc2xpZGVyIjoiLTMiLCJtOF9hbmdsZTJfbWF4X3NsaWRlciI6IjMiLCJ2M19zZWxlY3QiOiIyIiwibThfaGVpZ2h0X21pbl9zbGlkZXIiOiIwIiwibThfaGVpZ2h0X21heF9zbGlkZXIiOiIxMCJ9; SG9kbsSbIHZlbGvDoSBvc21pxI1rYSAlPcKw=eyJ1c3Jfc19pbnB1dCI6IjM0MzUiLCJtOF9wZXJpb2Rfc2xpZGVyIjoiNjgiLCJyZXZtc19pbnB1dCI6IjAiLCJ2MV9zZWxlY3QiOiIxIiwibThfYW5nbGUxX21pbl9zbGlkZXIiOiItMTEiLCJtOF9hbmdsZTFfbWF4X3NsaWRlciI6IjExIiwidjJfc2VsZWN0IjoiMiIsIm04X2FuZ2xlMl9taW5fc2xpZGVyIjoiLTExIiwibThfYW5nbGUyX21heF9zbGlkZXIiOiIxMSIsInYzX3NlbGVjdCI6IjIiLCJtOF9oZWlnaHRfbWluX3NsaWRlciI6IjAiLCJtOF9oZWlnaHRfbWF4X3NsaWRlciI6IjM0In0; eyJ1c3Jfc19pbnB1dCI6IjAiLCJtOF9wZXJpb2Rfc2xpZGVyIjoiMzIiLCJyZXZtc19pbnB1dCI6IjAiLCJ2MV9zZWxlY3QiOiIxIiwibThfYW5nbGUxX21pbl9zbGlkZXIiOiItNSIsIm04X2FuZ2xlMV9tYXhfc2xpZGVyIjoiNSIsInYyX3NlbGVjdCI6IjIiLCJtOF9hbmdsZTJfbWluX3NsaWRlciI6Ii01IiwibThfYW5nbGUyX21heF9zbGlkZXIiOiI1IiwidjNfc2VsZWN0IjoiMiIsIm04X2hlaWdodF9taW5fc2xpZGVyIjoiNDAiLCJtOF9oZWlnaHRfbWF4X3NsaWRlciI6IjYwIn0; ZGVmYXVsdA=eyJ1c3Jfc19pbnB1dCI6IjM2IiwibThfcGVyaW9kX3NsaWRlciI6IjMyIiwicmV2bXNfaW5wdXQiOiIwIiwidjFfc2VsZWN0IjoiMSIsIm04X2FuZ2xlMV9taW5fc2xpZGVyIjoiLTUiLCJtOF9hbmdsZTFfbWF4X3NsaWRlciI6IjUiLCJ2Ml9zZWxlY3QiOiIyIiwibThfYW5nbGUyX21pbl9zbGlkZXIiOiItNSIsIm04X2FuZ2xlMl9tYXhfc2xpZGVyIjoiNSIsInYzX3NlbGVjdCI6IjIiLCJtOF9oZWlnaHRfbWluX3NsaWRlciI6IjQwIiwibThfaGVpZ2h0X21heF9zbGlkZXIiOiI2MCJ9; ZGVmYXVsdDI=eyJ1c3Jfc19pbnB1dCI6Ijg4IiwibThfcGVyaW9kX3NsaWRlciI6IjMyIiwicmV2bXNfaW5wdXQiOiIwIiwidjFfc2VsZWN0IjoiMSIsIm04X2FuZ2xlMV9taW5fc2xpZGVyIjoiLTUiLCJtOF9hbmdsZTFfbWF4X3NsaWRlciI6IjUiLCJ2Ml9zZWxlY3QiOiIyIiwibThfYW5nbGUyX21pbl9zbGlkZXIiOiItNSIsIm04X2FuZ2xlMl9tYXhfc2xpZGVyIjoiNSIsInYzX3NlbGVjdCI6IjIiLCJtOF9oZWlnaHRfbWluX3NsaWRlciI6IjQwIiwibThfaGVpZ2h0X21heF9zbGlkZXIiOiI3OCJ9"

(this is b64 encoded name and b64 encoded data - 5 cookies, 4 is correct with long value, 1 cookie is long name with no value, no "=" part) this is only the strange one cookie from code-quoted data above:

eyJ1c3Jfc19pbnB1dCI6IjAiLCJtOF9wZXJpb2Rfc2xpZGVyIjoiMzIiLCJyZXZtc19pbnB1dCI6IjAiLCJ2MV9zZWxlY3QiOiIxIiwibThfYW5nbGUxX21pbl9zbGlkZXIiOiItNSIsIm04X2FuZ2xlMV9tYXhfc2xpZGVyIjoiNSIsInYyX3NlbGVjdCI6IjIiLCJtOF9hbmdsZTJfbWluX3NsaWRlciI6Ii01IiwibThfYW5nbGUyX21heF9zbGlkZXIiOiI1IiwidjNfc2VsZWN0IjoiMiIsIm04X2hlaWdodF9taW5fc2xpZGVyIjoiNDAiLCJtOF9oZWlnaHRfbWF4X3NsaWRlciI6IjYwIn0;

then I want to delete the strange cookie with empty value, type this

document.cookie = "eyJ1c3Jfc19pbnB1dCI6IjAiLCJtOF9wZXJpb2Rfc2xpZGVyIjoiMzIiLCJyZXZtc19pbnB1dCI6IjAiLCJ2MV9zZWxlY3QiOiIxIiwibThfYW5nbGUxX21pbl9zbGlkZXIiOiItNSIsIm04X2FuZ2xlMV9tYXhfc2xpZGVyIjoiNSIsInYyX3NlbGVjdCI6IjIiLCJtOF9hbmdsZTJfbWluX3NsaWRlciI6Ii01IiwibThfYW5nbGUyX21heF9zbGlkZXIiOiI1IiwidjNfc2VsZWN0IjoiMiIsIm04X2hlaWdodF9taW5fc2xpZGVyIjoiNDAiLCJtOF9oZWlnaHRfbWF4X3NsaWRlciI6IjYwIn0=;expires=Thu, 23 Jan 1970 00:00:01 GMT;path=/";

but no way, the it is not deleted (the same output of document.cookie as before... so I try to delete another

document.cookie = "dGVzdF9tYWx5=;expires=Thu, 23 Jan 1970 00:00:01 GMT;path=/";

success, it is deleted, but the strange one is impossible to delete (tried many variants, different time, non-empty value, with/without path specification)

"SG9kbsSbIHZlbGvDoSBvc21pxI1rYSAlPcKw=eyJ1c3Jfc19pbnB1dCI6IjM0MzUiLCJtOF9wZXJpb2Rfc2xpZGVyIjoiNjgiLCJyZXZtc19pbnB1dCI6IjAiLCJ2MV9zZWxlY3QiOiIxIiwibThfYW5nbGUxX21pbl9zbGlkZXIiOiItMTEiLCJtOF9hbmdsZTFfbWF4X3NsaWRlciI6IjExIiwidjJfc2VsZWN0IjoiMiIsIm04X2FuZ2xlMl9taW5fc2xpZGVyIjoiLTExIiwibThfYW5nbGUyX21heF9zbGlkZXIiOiIxMSIsInYzX3NlbGVjdCI6IjIiLCJtOF9oZWlnaHRfbWluX3NsaWRlciI6IjAiLCJtOF9oZWlnaHRfbWF4X3NsaWRlciI6IjM0In0; eyJ1c3Jfc19pbnB1dCI6IjAiLCJtOF9wZXJpb2Rfc2xpZGVyIjoiMzIiLCJyZXZtc19pbnB1dCI6IjAiLCJ2MV9zZWxlY3QiOiIxIiwibThfYW5nbGUxX21pbl9zbGlkZXIiOiItNSIsIm04X2FuZ2xlMV9tYXhfc2xpZGVyIjoiNSIsInYyX3NlbGVjdCI6IjIiLCJtOF9hbmdsZTJfbWluX3NsaWRlciI6Ii01IiwibThfYW5nbGUyX21heF9zbGlkZXIiOiI1IiwidjNfc2VsZWN0IjoiMiIsIm04X2hlaWdodF9taW5fc2xpZGVyIjoiNDAiLCJtOF9oZWlnaHRfbWF4X3NsaWRlciI6IjYwIn0; ZGVmYXVsdA=eyJ1c3Jfc19pbnB1dCI6IjM2IiwibThfcGVyaW9kX3NsaWRlciI6IjMyIiwicmV2bXNfaW5wdXQiOiIwIiwidjFfc2VsZWN0IjoiMSIsIm04X2FuZ2xlMV9taW5fc2xpZGVyIjoiLTUiLCJtOF9hbmdsZTFfbWF4X3NsaWRlciI6IjUiLCJ2Ml9zZWxlY3QiOiIyIiwibThfYW5nbGUyX21pbl9zbGlkZXIiOiItNSIsIm04X2FuZ2xlMl9tYXhfc2xpZGVyIjoiNSIsInYzX3NlbGVjdCI6IjIiLCJtOF9oZWlnaHRfbWluX3NsaWRlciI6IjQwIiwibThfaGVpZ2h0X21heF9zbGlkZXIiOiI2MCJ9; ZGVmYXVsdDI=eyJ1c3Jfc19pbnB1dCI6Ijg4IiwibThfcGVyaW9kX3NsaWRlciI6IjMyIiwicmV2bXNfaW5wdXQiOiIwIiwidjFfc2VsZWN0IjoiMSIsIm04X2FuZ2xlMV9taW5fc2xpZGVyIjoiLTUiLCJtOF9hbmdsZTFfbWF4X3NsaWRlciI6IjUiLCJ2Ml9zZWxlY3QiOiIyIiwibThfYW5nbGUyX21pbl9zbGlkZXIiOiItNSIsIm04X2FuZ2xlMl9tYXhfc2xpZGVyIjoiNSIsInYzX3NlbGVjdCI6IjIiLCJtOF9oZWlnaHRfbWluX3NsaWRlciI6IjQwIiwibThfaGVpZ2h0X21heF9zbGlkZXIiOiI3OCJ9"

how it is possible? a buggy undeletable cookie?

To delete a cookie, you just need to set the value of the cookie to empty and set the value of expires to a passed date.

document.cookie = "cookiename= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"

This May help you https://www.guru99.com/cookies-in-javascript-ultimate-guide.html

I finally found that it was cookie with an empty name!! So this helped to delete it:

document.cookie = "=;expires=Thu, 23 Jan 1970 00:00:01 GMT;path=/";

So the difference between document.cookie output with/without "=" at the end helped to resolve it. It wasn't cookie bug, it was created by cname="" and cvalue=[longdata]...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM