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);
}
});
Sì, ma non funziona – jalogar
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
@ user1026361, Posso impostare l'intestazione di connessione correttamente in questo modo? – BetRob