jqueryajaxcors+;HttpOnly Cookie
我已经让CORS在我当前的项目中工作,尽管有一件事我似乎无法正常工作,那就是cookies 现在我得到了cookie,服务器发出并发送cookie,firefox接受cookie,我可以在firebug cookies部分看到它。但是,当我对该服务进行后续调用时,它似乎不会发送标头中的cookiejqueryajaxcors+;HttpOnly Cookie,jquery,ajax,cookies,cross-domain,Jquery,Ajax,Cookies,Cross Domain,我已经让CORS在我当前的项目中工作,尽管有一件事我似乎无法正常工作,那就是cookies 现在我得到了cookie,服务器发出并发送cookie,firefox接受cookie,我可以在firebug cookies部分看到它。但是,当我对该服务进行后续调用时,它似乎不会发送标头中的cookie GET /some/entity/ HTTP/1.1 Host: localhost:1837 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5
GET /some/entity/ HTTP/1.1
Host: localhost:1837
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: */*
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://localhost:6879
Origin: http://localhost:6879
我需要对我的ajax调用做一些特殊的处理吗
var ajaxOptions = {
url: serviceResourceUrl,
type: "get",
dataType: "json",
success: successCallback,
error: failedCallback,
xhrFields: { withCredentials: true }
};
$.ajax(ajaxOptions);
尝试使用beforeSend属性而不是xhrFields。就你而言:
var ajaxOptions = {
url: serviceResourceUrl,
type: "get",
dataType: "json",
success: successCallback,
error: failedCallback,
beforeSend: function(xhr){
xhr.withCredentials = true;
}
};
$.ajax(ajaxOptions);
您可以在这里了解更多信息:我本来是想用这种方式做的,但根本不起作用。在xhrFields上看到一篇帖子:{…}这对我检索cookies很有用。我将再次尝试其他方法。只是尝试了一下,仍然没有运气。cookie可以在firebug中看到,它具有正确的过期和域。在服务上进行调试时,没有cookies:(抱歉,所有的评论,但只是仔细检查了域,并在firebug中报告了localhost(部分正确),但是开发中的服务实际上是在localhost:1873上的。如果我尝试编辑cookie并将该域放入,它只会忽略cookie,并且似乎只保留localhost。服务器似乎将其正确设置为…那么这可能是firefox的错误吗?给出答案,尽管xhrFields{}works和beforeSend:…对我来说不是。这里的根本问题是通过不让服务器设置cookies域并让客户端推断来解决的。