我粘贴小提琴js代码并返回null。但是在小提琴上,结果是5.为什么它没有正确返回?
https://jsfiddle.net/ay7xnzvz/
document.cookie = "test=5";
function read_cookie(k,r){return(r=RegExp('(^|; )'+encodeURIComponent(k)+'= ([^;]*)').exec(document.cookie))?r[2]:null;}
var x = read_cookie("test", document.cookie);
alert(x);
答案 0 :(得分:0)
我假设您没有在Web服务器中运行此脚本,您只是打开file.html
(包含该脚本)本地。
要使用cookie,您需要一个Web服务器。
当收到HTTP请求时,服务器可以发送Set-Cookie标头 随着回应。之后,cookie值随之一起发送 以Cookie HTTP的形式向同一服务器发出的每个请求 头。另外,可以指定到期延迟。 还可以指定对特定域和路径的限制。 - 通过MDN
答案 1 :(得分:0)
在Firefox控制台中,您的代码返回null
。
但是在Chrome中,它会返回5
。
使它在两个浏览器和jsfidle中都返回相同的值:
var c1= document.cookie = "test=5";
function read_cookie(k,r){return(r=RegExp('(^|; )'+encodeURIComponent(k)+'=([^;]*)').exec(c1))?r[2]:null;}
var x = read_cookie("test", c1);
alert(x);