【发布时间】:2011-03-29 12:44:27
【问题描述】:
我正在尝试“获取”页面,并传入存储在我的 cookie 中的 id 列表。我的假设是可以从我的请求中获取带有列表的 cookie。但是,我没有像我期望的那样在服务器端获得 cookie。我只得到一个“用户”cookie,但它不包含我的信息。
我想尽量避免在 URL 中实际传递这些值,因为我试图保持尽可能干净和漂亮的 URL。但是,如果以任何其他方式不可能,那么我仍然可以做到。
添加 cookie:
function setCookie(name, value) {
var today = new Date();
today.setTime(today.getTime());
var expires = 30 * 1000 * 60;
var c_name = name;
var exdate = new Date(today.getTime() + (expires));
document.cookie = c_name + "=" + value + ";expires=" + exdate.toGMTString();
}
在 jQuery 中获取新页面:
document.location.href = href;
在我的操作方法中:
if (Request.Cookies != null)
{
var myCookie = Request.Cookies[cookieName];
}
//myCookie is always null
我添加的 cookie 不应该在请求中仍然可以访问吗?
编辑:
当我现在使用 FireBug 和 FireCookie 时,我可以看到 cookie 没有随请求一起传递。所以问题是我在添加cookie时是否做错了什么?
【问题讨论】:
-
在发送到服务器之前,您是否确保 cookie 位于可访问的域中?您可以使用 Firecookie 之类的工具来获取此信息。 addons.mozilla.org/en-US/firefox/addon/6683
-
我不确定 ASP.NET 部分,但要让浏览器沿请求发送 cookie,其域 和 路径应与请求 URI 匹配。先把你的注意力集中在那个部分。
-
设置 cookie 是 javascript 中的一个烦恼。由于您使用的是 jQuery,我建议您使用 cookie 插件:plugins.jquery.com/project/cookie。
-
cookie 是可访问的。我用过 FireCookie,我可以看到我的 cookie 以及我期望的所有内容。
标签: jquery asp.net-mvc cookies