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

发布网友

我来回答

3个回答

热心网友

在用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;
}
});

热心网友

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 ……这些头,都是无效的。

热心网友

..................你看的这个不是XMLHttpRequest的请求头吧。。。 你这个是不是在浏览器输入地址后进行的请求。XMLHttpRequest是要在用到发送的时候才发送的..............追问确定是ajax的请求头,在这个请求的query string parameters还附上了ajax的请求参数,而且ajax在js对写入cookie之后发送的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com