【发布时间】:2015-08-06 17:28:48
【问题描述】:
我正在尝试使用 java 设置 cookie,如 here 所示。
我想在 javascript 中使用这个 cookie(由于一些限制需要像这样使用它)。但我看不到任何 cookie 集(为此我使用的是web developer addon firefox)。
有没有办法做到这一点?这种 cookie 使用是否可能?
Java 代码:
try {
// instantiate CookieManager
CookieManager manager = new CookieManager();
CookieHandler.setDefault(manager);
CookieStore cookieJar = manager.getCookieStore();
// create cookie
HttpCookie cookie = new HttpCookie("UserName", str);
// add cookie to CookieStore for a
// particular URL
URL url = new URL("http://host.example.com");
cookieJar.add(url.toURI(), cookie);
System.out.println("Added cookie using cookie handler");
} catch(Exception e) {
System.out.println("Unable to set cookie using CookieHandler");
e.printStackTrace();
}
Javascript:
function Cookie(cname){
alert("in getcookie function");
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0)
document.getElementById("result").innerHTML=c.substring(name.length,c.length);
}
console.log(document.cookie);
//document.getElementById("result").innerHTML="somewhere something went wrong!";
}
</script>
<div id="result">
<p onclick="Cookie('JSESSIONID')">Click me</p>
</div>
console.log 没有显示任何输出。
【问题讨论】:
-
您能提供您正在使用的relevant code 吗?
-
如果您在呈现的文档中使用
console.log(document.cookie),它会显示什么? -
空输出。 @MichaelDibbets
-
好的,这意味着您的 cookie 未设置,或者您在设置 cookie 之前发送了标头。顺便说一句,您可能希望为您的 cookie 使用这个更简单的代码 :-) jsfiddle.net/mdibbets/jfpu45nx/1 它会将它们作为对象返回。请在页面生成的早期检查您调用 cookie 代码的代码路径。在您向浏览器输出的那一刻,cookie 需要已经设置好了。
-
这里我通过 onclick 调用该函数,这也是在看到 java 代码的输出“cookie created”之后。我使用了你的代码,对象中的字符串是“未定义的”。这意味着什么?
标签: javascript java cookies