会话/ Cookie未设置(发布,重定向)

时间:2011-04-06 08:54:00

标签: session cookies asp-classic

我在经典ASP中遇到了Session和Cookies的大问题。

我有“a.asp”,我设置了Session("step") = "1"。这是有效的,当我调用我的“test.asp”时我会<%=Session("step")%>得到“1”。

然后我将“a.asp”上的表单提交到“process.asp”,我根据提交的表单值设置其他会话变量。最后我重定向到“b.asp”。

在“b.asp”上,我检查是否为Session("step") = "1",如果为“1”则将其设置为“2”,否则重定向为“a.asp”。我在页面上写了Session("step"),然后写了“2”,但当我打电话给“test.asp”时,它说的是“1”。

似乎页面本身得到了正确的值,但重新加载或任何其他页面忽略了会话/ cookie值的更改。

尝试使用Cookie(Response.Cookies("step") / Request.Cookies("step"))并获得相同的结果。

页面都在同一个文件夹中,IIS上只有一个工作线程。

无法弄清楚为什么会话和cookie没有设置。任何建议表示赞赏!

1 个答案:

答案 0 :(得分:1)

(似乎无法评论,但需要一些澄清。将根据需要编辑/删除此答案。无论如何....)

可能是一个缓存问题:

  • 您是否尝试过CTRL + F5以确保您的浏览器正在重新加载。
  • 尝试在其他浏览器中,我发现Firefox和Chrome有时会忽略强制缓存刷新,或尝试“私有”模式。
  • 您的主机是否有负载均衡器或缓存系统?为test.asp的每个请求添加一个随机查询字符串以确保。
  • 您可以强制禁止缓存,但有些浏览器,ISP和Hosters无论如何都会忽略它......

Response.Expires = 0
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"

道歉,如果你已经尝试了所有这些,宁可问一下快速评论!