2015-06-25 14 views
9

Sono AJAXing una chiamata a un'altra API di servizi, che deve quindi restituire un cookie che verrà impostato nel mio browser per consentirmi di effettuare il resto delle mie chiamate API .L'intestazione Set-Cookie non imposta cookie in Chrome

Tuttavia, mentre le intestazioni di risposta includono un'intestazione "Set-Cookie", nessun cookie viene mai effettivamente impostato. Sto usando Google Chrome.

Ecco intestazioni di risposta:

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 

Ed ecco la chiamata 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); 
      } 
}); 

La pagina di risorse Chrome mostra anche che nessun cookie è stato impostato. Ogni tipo di aiuto sarà enormemente apprezzato!

+1

Hai guardato qui: http://stackoverflow.com/questions/16019135/set-cookie-without-page-refresh – testing123

risposta

7

È necessario aggiungere withCredentials alla chiamata XHR, questa risposta mostra come farlo con jQuery. https://stackoverflow.com/a/7190487 Senza questo flag aggiuntivo, il browser non accetta un'intestazione del set-cookie.

Problemi correlati