2012-10-09 11 views
6

私はトラッキングシステムのためにYouTrackを使用しています。 Youtrackには、システムから情報を取得するために呼び出すことができる休憩Webサービスが付属しています。私は問題を認可されており、常に禁止されています。レスポンスヘッダーを取得jquery ajax投稿セットクッキー

ログインに私の投稿を行い、「ログインOK」というレスポンが表示されます。ファイヤーバグをチェックすると、ヘッダーは正しく設定されていますが、クッキーは作成されません。そのためには、レスポンスヘッダ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; Expires = Wed、09-Oct-2013 09:47:48 GMT;キャッシュコントロール:no-cache、no-store、no-transform、must-revalidate アクセス制御許可元:a.domain.com アクセス制御許可の資格情報:true Content-タイプ:application/xmlの;のcharset = UTF-8 転送エンコード:火、2012年10月9日9時47分48秒GMT

要求::

POST /休憩/ユーザー 日チャンク/ログインHTTP/1.1 ホスト:b.eelab.se ユーザーエージェント:Mozilla/5.0(Windows NT 6.1; WOW64; rv:14.0)Gecko/201 00101のFirefox/14.0.1 が受け入れ:/ 受け入れ言語:SV-SEを、SV; EN-US Q = 0.8、; Q = 0.5、EN; Q = 0.3 符号化受け入れ:、GZIP 接続を収縮:キープアライブ コンテンツタイプ:application/x-www-form-urlencoded;文字セット= UTF-8 リファラー:http://intra.eelab.se/kontakt/it-vad-jobbar-vi-pa-nu/ のContent-Length:30 原産地:http://a.domain.com プラグマ:キャッシュなし のCache-Control:キャッシュなし

私はクッキーを作成するには、Set-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 

});