情况: 我有2个网页,有2个域名(backoffice.myurl.com和www.myurl.com)。 后台用经典的asp编写,asp.net 3.5(vb.net)的前端
当我点击后台的按钮时,我想在前端设置一个cookie。 我这样做是通过Microsoft.XMLHTTP调用前端页面
Dim GetConnection
Set GetConnection = CreateObject("Microsoft.XMLHTTP")
GetConnection.Open "POST", webserviceLocation, False
GetConnection.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
GetConnection.Send("data=" &value)
在aspx代码中,我读取了发布的值并将其放在cookie中:
If Not Request.Cookies("mytest3") Is Nothing Then
Response.Cookies("mytest3").Expires = Now.AddYears(-23)
End If
Response.Cookies.Set(New HttpCookie("mytest3", Request.Form.Item("data")))
Response.Cookies("mytest3").Expires = DateTime.Now.AddYears(30)
在前端的另一个页面上,我想读取该cookie:
Request.Cookies("mytest3").Value
但是Request.Cookies(“mytest3”)在那里“没有”。 显然cookie没有设置。我做错了什么或如何解决这个问题? 调用页面(我的调试器命中断点)
这甚至可能吗?
答案 0 :(得分:2)
创建Cookie时,您需要明确设置domain:
' I do not remember if the value should be set to myurl.com or .myurl.com
' Please test
Response.Cookies("mytest3").Domain = "myurl.com"
这样浏览器会将每个请求的Cookie发送到*.myurl.com
答案 1 :(得分:1)
Darin已经回答了你的问题但你对这一行有另一个问题: -
Response.Cookies("mytest3").Expires = Now.AddYears(-23)
响应Cookie集合是与Request集合不同的集合。在代码专门为其添加cookie之前,响应cookie始终为空。因此,上述行将失败。