2015-06-25 12 views
9

Jestem AJAXing wywołanie innego API usług, który następnie powinien zwrócić plik cookie, który zostanie ustawiony w mojej przeglądarce, aby umożliwić mi wykonywanie pozostałych zaproszeń API .Nagłówek Set-Cookie nie ustawia pliku cookie w przeglądarce Chrome

Mimo że nagłówki odpowiedzi zawierają nagłówek "Set-Cookie", plik cookie nie jest faktycznie ustawiony. Używam Google Chrome.

Oto nagłówki odpowiedzi:

Access-Control-Allow-Origin:* 
Cache-Control:no-cache 
Connection:keep-alive 
Content-Encoding:gzip 
Content-Length:37 
Content-Type:application/json 
Date:Thu, 25 Jun 2015 18:27:37 GMT 
Expires:Thu, 25 Jun 2015 18:27:36 GMT 
Server:nginx/1.4.6 (Ubuntu) 
Set-Cookie:sessionid=67cb9796aa794a4975b28876ea6dd3d5; expires=Thu, 09-Jul-2015 18:27:37 GMT; httponly; Max-Age=1209600; Path=/ 
Vary:Cookie 

I tu jest wywołanie AJAX:

$.ajax({ 
      type: "POST", 
      crossDomain: true, 
      contentType: 'text/plain', 
      data: data, 
      url: urlhere 
      success: function(result, status, xhr){ 
       console.log('hi'); 
       console.log(xhr.getAllResponseHeaders()); 
      }, 
      error: function(xhr){ 
       console.log(xhr.status); 
       console.log(xhr.statusText); 
      } 
}); 

Strona zasoby Chrome pokazuje również, że żaden plik cookie jest ustawiony. Każda pomoc będzie bardzo ceniona!

+1

Zajrzyj tutaj: http://stackoverflow.com/questions/16019135/set-cookie-without-page-refresh – testing123

Odpowiedz

7

Musisz dołączyć withCredentials do swojego wywołania XHR, ta odpowiedź pokazuje, jak to zrobić z jQuery. https://stackoverflow.com/a/7190487 Bez tej dodatkowej flagi przeglądarka nie zaakceptuje nagłówka zestawu plików cookie.

Powiązane problemy