setRequestHeader 之后不能 getResponseHeader 么??

在做一个xmlhttp提交cookie的时候,碰到一个问题代码是这样的.MyCook是一个全局变量,用来保存cookie,在页面传递,第一次运行时是空的IfReferer... 在做一个xmlhttp提交cookie的时候,碰到一个问题
代码是这样的.
MyCook 是一个全局变量,用来保存cookie,在页面传递,第一次运行时是空的 If Referer <> "" Then http.setRequestHeader "Referer", Referer

If MyCook <> "" Then http.setRequestHeader "Cookie", MyCook

http.send

If http.ReadyState = 4 Then

Form1.coo.Text = http.getAllResponseHeaders

GetCode = BytesToBstr(http.responseBody, gCode)

MyCook = http.getResponseHeader("Set-Cookie")

End If
复制代码我不是很清楚我这样写是不是有什么逻辑上的问题.我把这段代码放在 Timer里运行,间隔几秒刷新

现在的问题是,在Timer运行的第一次,是没有问题的
.http.getAllResponseHeaders可以获取
MyCook = http.getResponseHeader("Set-Cookie") 也可以正常获取Cookie

但是到了Timer第二次运行的时候,Vb就报错了,

实时错误 '-2147012746 (80072f76)';
The requested header was not found

意思是没有cookie...返回,提交了cookie,就不返回cookie了么 ???

请问, 在设置 http.setRequestHeader "Cookie", MyCook 之后
就不能再 MyCook = http.getResponseHeader("Set-Cookie") 了么

http在获取到cookie, 每次刷新应该是会提交cookie的啊
这里为什么发送cookie之后, 就不能在获取cookie了呢.

请指教...谢谢了.....
百度的排版有点问题, 看这里可能清楚一点
http:// www. vbgood.com/thread-100680-1-1.html
展开
 我来答
牛A和牛C间徘徊
2010-12-23 · TA获得超过1037个赞
知道小有建树答主
回答量:782
采纳率:0%
帮助的人:604万
展开全部
首先,你要明白http协议的原理
你在send之前用setRequestHeader 是设置了发送给服务器的http头信息
所以,你在发送的时候,http的头是由你来控制的(xmlhttp也会自己控制,只是提供了一个setRequestHeader方法可以让你来自定义部分内容)

而服务器在发送回来的时候,http头信息是由服务器来控制的..

并不是说你send的时候加入了cookie,服务器在response的时候就一定要返回一个set-cookie

还有就是服务器返回的时候,http头可能包含了多个set-cookie,而且,一个cookie信息通常包含cookie名,cookie值,有效期还有作用域,你只用一个变量在管理cookie显然很难达到你想要的效果....

如果你要获取response的cookie信息,应该先用instr判断下,responseheader里面有没set-cookie,然后再对set-cookie进行分析,这样就不会出错了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式