2012-10-09 77 views
6

我正在使用YouTrack为我们的跟踪系统。 Youtrack提供了一个可以调用以从系统获取信息的休息Web服务。我有问题获得授权,并一直受到禁止。获取响应标题jquery ajax发布设置Cookie

我做我的帖子到他们的登录,我得到的“登录OK”的答复,如果我检查萤火虫,我可以看到标题设置正确,但没有创建cookie。为此,我需要从响应标题Set-Cookie中获取值。

该帖子看起来像这样。

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

     // do something 

     }); 

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

响应头:

HTTP/1.1 200 OK 服务器:Apache-狼/ 1.1 的Set-Cookie:YTJSESSIONID = 91541168A3E0FF9BBB02A8D427D70127; Path =/ jetbrains.charisma.main.security.PRINCIPAL = NjVlODRiZTMzNTMyZmI3ODRjNDgxMjk2NzVmOWVmZjNhNjgyYjI3MTY4YzBlYTc0NGIyY2Y1OGVlMDIzMzdjNTpyZXN0VXNlcg;到期日期=星期三,09-Oct-2013 09:47:48 GMT;路径=/ 缓存控制:无缓存,无存储,无变换,必须重新验证 访问控制 - 允许来源:a.domain.com 访问控制 - 允许 - 凭据:true Content-类型:application/XML;字符集= UTF-8 传输编码:分块 日期:星期二,2012年10月9日9时47分48秒GMT

请求:

POST /休息/用户/ login HTTP/1.1 Host:b.eelab.se User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64; rv:14.0)Gecko/201 00101火狐/ 14.0.1 接受:/ 接受语言:SV-SE,SV; Q = 0.8,EN-US; Q = 0.5,连接; Q = 0.3 接受编码:gzip,放气 连接:keep-alive 内容类型:application/x-www-form-urlencoded;字符集= UTF-8 的Referer:http://intra.eelab.se/kontakt/it-vad-jobbar-vi-pa-nu/ 的Content-Length:30 产地:http://a.domain.com 杂注:无缓存 缓存控制:无缓存

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

/干杯。

+0

做我的回答对你的工作?如果是的话,你可以标记它正确吗? –

回答

3

试试这个:

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 

});