通过Microsoft.XMLHTTP调用网页来设置cookie

时间:2009-12-31 10:08:44

标签: asp.net cookies asp-classic xmlhttprequest

情况: 我有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没有设置。我做错了什么或如何解决这个问题? 调用页面(我的调试器命中断点)

这甚至可能吗?

2 个答案:

答案 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始终为空。因此,上述行将失败。