首页 文章

获取响应头jquery ajax post Set-Cookie

提问于
浏览
6

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

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

帖子看起来像这样 .

$.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 Origin:http://a.domain.com Pragma:no -cache Cache-Control:no-cache

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

/干杯 .

1 回答

  • 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
    
    });
    

相关问题