即使没有提交,onSubmit函数也会发送cookie

时间:2011-03-05 16:07:03

标签: javascript

我只是在提交表单时尝试设置cookie,但似乎函数设置了 每次刷新页面上的cookie

function Sub(){
var exdays="3000";
var value="asdf";
var exdate=new Date();
var c_name="asdf";
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;

alert("asdf"); //just for debugging
return true; }
</SCRIPT>

<form id="myform" action="http://localhost" onsubmit="return Sub();">

2 个答案:

答案 0 :(得分:1)

浏览器会针对同一网址的每个请求发送Cookie,直到删除,过期或会话Cookie为止,直到创建新会话为止。

您正在设置过期时间,因此它不是会话Cookie。因此,无论您是否点击了某些内容,您的浏览器都会将每个网页加载的Cookie发送到该网址。

尝试删除过期日期,清除Cookie缓存,然后重新启动浏览器。

在您提交一次之前,Cookie不会出现。然后cookie将一直存在,直到您关闭会话(重新启动浏览器)。

答案 1 :(得分:1)

您的意思是每次重新加载时cookie都会被更改,或者cookie是否存在?

我在这里假设您正在使用cookie将一些信息与表单一起发送到服务器。

Cookie是持久的,并且会一直存在,直到它们被更改为止。在表单中包含隐藏字段并更改其值,而不是设置cookie可能更有意义。