用javascript设置了cookie,ajax请求却不生效的问题

通过控制台观察,对图片的http请求的header部分也都带上了,为什么ajax请求没有带上?尝试使用xmlhttp.setRequestHeader('Cookie',... 通过控制台观察,对图片的http请求的header部分也都带上了,为什么ajax请求没有带上?

尝试使用
xmlhttp.setRequestHeader('Cookie', 'a=1')

这种方式强制带上,js直接报错...

求教
setCookie方法是我自己写的,已经测验过,通过document.cookie可以正确获取'key=value'的格式

chrome控制台下的ajax请求的request headers部分如下,完全没有cookie这一项:
展开
 我来答
51CTO学院
2015-12-14 · 中国最大的IT实战在线培训平台
51CTO学院
中国最大的IT实战在线教育培训平台。
向TA提问
展开全部
在用JavaScript发送ajax请求时增加cookie的方法如下:

$.ajax( {
type : "POST",
url : URL,
data: SOAP_INBOX_MAIL_QUERY,
dataType : "xml",
async: false,
beforeSend : function(xhr) {
var cookie = credentials["COOKIE"];//此处设置cookie
console.info( "adding cookie: "+ cookie );
xhr.setRequestHeader('Cookie', cookie);
},
success : function(data, textStatus, xmLHttpRequest){
},
error : function(xhr, ajaxOptions, thrownError) {
credentials = null;
}
});
yuanunique
2013-01-28 · TA获得超过159个赞
知道小有建树答主
回答量:291
采纳率:100%
帮助的人:155万
展开全部
cookie不是这么加的,你这是在加请求参数。
cookie是response的事情。
追问
不是,理论上说,任何http request都应该带上浏览器的cookie作为request header的一部分,ajax也不例外,不知道为何我自己设置的cookie的没有带上
追答
ajax实际用的是XMLHttpRequest这个对象发送请求的,XMLHttpRequest对象防止人为的伪造请求头,所以它将自动添加处理这些头。类似的User-Agent   Accept-Charset  Accept-Encoding connection cookie等都是无法向setRequestHeader()传递这些头的,这些都是request自动处理添加的。
也就是说你
xmlhttp.setRequestHeader('Cookie', 'a=1')是无效的。
不信你可以试试设置User-Agent ……这些头,都是无效的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nklnklnklnkl
2013-01-28 · 超过14用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:42.1万
展开全部
..................你看的这个不是XMLHttpRequest的请求头吧。。。 你这个是不是在浏览器输入地址后进行的请求。XMLHttpRequest是要在用到发送的时候才发送的..............
追问
确定是ajax的请求头,在这个请求的query string parameters还附上了ajax的请求参数,而且ajax在js对写入cookie之后发送的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式