2012-10-19 12 views
5

Mam projekt, który używa interfejsu API REST. Tutaj, gdy Isend wysyła żądanie logowania, wysyła mi odpowiedź jako JSON zawierający pewne dane. Wraz z tym w nagłówku odpowiedzijQuery Zestaw odpowiedzi AJAX Cookie Header

Access-Control-Allow-Origin:* 
Connection:keep-alive 
Content-Length:239 
Content-Type:application/json 
Date:Fri, 19 Oct 2012 06:28:12 GMT 
Server:Apache/2.2.22 (Amazon) 
Set-Cookie:session=username; Path=/ 

Tutaj mamy Set-Cookie, ale plik ten nie jest ustawienie. Potrzebuję ustawić to ciasteczko, ponieważ w przypadku jakiegokolwiek innego dostępu API, serwer sprawdzi, czy ten plik cookie.

Jak mogę rozwiązać ten problem? Jakie jest rozwiązanie dla metody odpowiedzi nagłówka jQuery AJAX?

+0

Jeżeli robisz to żądanie? –

Odpowiedz

6

Możesz pobrać nagłówki z XMLHTTPRequest. To może pomóc. Daj mi znać, jeśli to działa.

$.ajax({ 
    type: 'POST', 
    url:'url.do', 
    data: formData, 
    success: function(data, textStatus, XMLHttpRequest){ 
     var cookietoSet=XMLHttpRequest.getResponseHeader('Set-Cookie'); 

     Set_Cookie(cookietoSet.split('=')[0],cookietoSet.split('=')[1],expires, path, domain, secure)//change as per ur needs 
    } 
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     alert(XMLHttpRequest.getResponseHeader('some_header')); 
    } 
    }); 




function Set_Cookie(name, value, expires, path, domain, secure) 
{ 
// set time, it's in milliseconds 
var today = new Date(); 
today.setTime(today.getTime()); 

/* 
if the expires variable is set, make the correct 
expires time, the current script below will set 
it for x number of days, to make it for hours, 
delete * 24, for minutes, delete * 60 * 24 
*/ 
if (expires) 
{ 
expires = expires * 1000 * 60 * 60 * 24; 
} 
var expires_date = new Date(today.getTime() + (expires)); 

document.cookie = name + "=" +escape(value) + 
((expires) ? ";expires=" + expires_date.toGMTString() : "") + 
((path) ? ";path=" + path : "") + 
((domain) ? ";domain=" + domain : "") + 
((secure) ? ";secure" : ""); 
} 
+0

Ten kod cookies na moim lokalnym serwerem. Ale mój problem jest, że trzeba go ustawić dla serwera API Cookie nie zapewnia żadnych nazw domen –

+0

Nadal nie jest jasne ... ten kod ustawi plik cookie z serwera WWW w przeglądarce – thecodejack

2

Myślę, że prawdziwym problemem jest to, że jeśli masz ustawienia prywatności/cookies w przeglądarce ustawione na paranoidalne następnie kilka przeglądarek (przynajmniej FF & IE) wydają się ignorować podstawie nagłówków Set-Cookie XHR.

Oto link do pomocy FF, która może być przydatna dla użytkowników. http://support.mozilla.org/en-US/kb/fix-login-issues-on-websites-require-passwords

Szkoda, że ​​nie było lepszego odbierania/obejście tego 8 (

Powiązane problemy