获取响应头jquery ajax post Set-Cookie

我正在使用YouTrack进行跟踪系统。 Youtrack附带了一个restWeb服务,您可以调用该服务从系统获取信息。 我有获得授权的问题,并且一直被禁止。

我的post到他们的登录,我得到了“登录确认”,如果我签入了firebug,我可以看到标题设置正确,但是没有创建cookie。 为此,我需要从响应头,Set-Cookie中获取值。

post看起来像这样。

$.post(youTrackLoginUrl, { login: "restUser", password: "qwerty" }, function(data, text, xhr) { // do something }); 

响应和请求看起来像这样。

响应标头:

HTTP / 1.1 200 OK服务器:Apache-Coyote / 1.1 Set-Cookie:YTJSESSIONID = 91541168A3E0FF9BBB02A8D427D70127; Path = / jetbrains.charisma.main.security.PRINCIPAL = NjVlODRiZTMzNTMyZmI3ODRjNDgxMjk2NzVmOWVmZjNhNjgyYjI3MTY4YzBlYTc0NGIyY2Y1OGVlMDIzMzdjNTpyZXN0VXNlcg; Expires = Wed,09-Oct-2013 09:47:48 GMT; Path = / Cache-Control:no-cache,no-store,no-transform,must-revalidate Access-Control-Allow-Origin:a.domain.com Access-Control-Allow-Credentials:true Content-Type:application / xml; charset = UTF-8转移编码:分块日期:星期二,09十月2012 09:47:48 GMT

请求:

POST / rest / user / login HTTP / 1.1主机:b.eelab.se User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64; rv:14.0)Gecko / 20100101 Firefox / 14.0.1接受: / Accept-Language: sv-se,sv; q = 0.8,en-us; q = 0.5,en; q = 0.3 Accept-Encoding:gzip,deflate连接:keep-alive内容类型:application / x-www-form-urlencoded; charset = UTF-8 Referer: http : //intra.eelab.se/kontakt/it-vad-jobbar-vi-pa-nu/ Content-Length:30来源: http: //a.domain.com Pragma:no -cache Cache-Control:no-cache

我需要Set-Cookie值来在网站上创建cookie。 我能做些什么来实现这一目标?

/干杯。

试试这个:

 function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } $.post(youTrackLoginUrl, { login: "restUser", password: "qwerty" }, function(data, text, xhr) { data_set_cookie = data.match(/Set-Cookie:\s([^;]+);/)[1]; createCookie(data_set_cookie.split("=")[0],data_set_cookie.split("=")[1],365); //sets cookie for 1 year });