2012-10-09 24 views
5

Sto sviluppando un'applicazione PhoneGap che deve connettersi a un server remoto staless. Alcune delle richieste remote sono autenticate e stavo progettando di utilizzare un servizio di remember-me. Quindi dall'applicazione è presente un'opzione di accesso che viene tradotta nella seguente richiesta eseguita con jQuery $ .ajax. Si noti che tutte le richieste sono application/jsonPhoneegap, cookie, richieste cross domain

POST remoteserver/api/utenti/login

e il server risponde impostando un cookie

Set-Cookie REMEMBER_ME_COOKIE = amVzdS5hbG9uc29AZ21haWwuY29tOjEzNTEwMDg1NTg1NDY6ODdkOGFhNzEzY2NiZTRhZTIwZjZlNzgyY2E1ZmQyODY ; Scadenza = Mar, 23-Ott-2012 16:09:18 GMT; Path = /; HttpOnly

Al fine di effettuare richieste domini incrociati funzionano, il server risponde come questo per le opzioni richieste:

Access-Control-Allow-Headers : Content-Type, * 
Access-Control-Allow-Origin : * 
Access-Control-Max-Age : 1000 

Tuttavia, la successiva richiesta al server non è l'impostazione del Cookie.

1) È possibile far funzionare i cookie?

2) Ho anche provato ad aggiungere manualmente i cookie nella richiesta $ .ajax, ma non funziona neanche. È qualcosa di sbagliato?

$.ajax({ 
     type : type, 
     url : url, 
     data : data, 
     success : callback, 
     dataType : dataType, 
     contentType : contentType, 
     beforeSend: function(xhr) { 
      xhr.setRequestHeader("Cookie", "REMEMBER_ME_COOKIE=amVzdS5hbG9uc29AZ21ha"); 
      }, 
     error : function(jqXHR, textStatus, errorThrown) { 
      handleError(jqXHR, textStatus, errorThrown); 
     } 
    }); 

risposta

1

Hai provato a strutturare le intestazioni nella richiesta?

$.ajax({ 
     type : type, 
     url : url, 
     data : data, 
     success : callback, 
     dataType : dataType, 
     contentType : contentType, 
     headers:{ 
      "Cookie" : "amVzdS5hbG9uc29AZ21ha" 
     }, 
     error : function(jqXHR, textStatus, errorThrown) { 
      handleError(jqXHR, textStatus, errorThrown); 
     } 
    }); 
+0

Sì, ma non funziona – jalogar

+0

Questo ha funzionato per me. Ma, per il caricamento di file statici con autenticazione fallita. Non so come ottenerlo per i file di immagine statici. – gviswanathan

+0

@ user1026361, Posso impostare l'intestazione di connessione correttamente in questo modo? – BetRob

Problemi correlati