Sto utilizzando la risposta di Rest per impostare i cookie sul lato client. Ma non riesco a vedere il cookie impostato quando apro "Risorse" in Chrome. Ma interessante, quando vado alle impostazioni di Chrome e controllo tutti i cookie, trovo i cookie che sto impostando. Ancora una volta, la funzione javascript di getCookie() di w3schools (o una versione migliore per gestire tutte le possibilità) non mi preleva nulla. Ho provato Firefox, succede la stessa cosa. Quando vedo tutti i cookie, vedo i miei cookie, ma la funzione JS getCookie() non mi restituisce nulla. Penso che i cookie non vengano impostati correttamente.JAX-RS Cookie in risposta non visualizzati nel browser
Ecco la mia risposta JAX-RS:
Cookie c1 = new Cookie(Constants.SESSION_TOKEN, response .getSessionToken().getValue()); Cookie c2 = new Cookie(Constants.USER_IDENTIFIER, response.getUserIdentifier()); NewCookie cookie1 = new NewCookie(c1); NewCookie cookie2 = new NewCookie(c2); return Response.ok(jsonResponse, MediaType.APPLICATION_JSON) .cookie(cookie1,cookie2).build();
E questa è la mia funzione di JS getCookie()
function getCookies() { var c = document.cookie, v = 0, cookies = {}; if (document.cookie.match(/^\s*\$Version=(?:"1"|1);\s*(.*)/)) { c = RegExp.$1; v = 1; } if (v === 0) { c .split(/[,;]/) .map( function(cookie) { var parts = cookie.split(/=/, 2), name = decodeURIComponent(parts[0] .trimLeft()), value = parts.length > 1 ? decodeURIComponent(parts[1] .trimRight()) : null; cookies[name] = value; }); } else { c .match( /(?:^|\s+)([!#$%&'*+\-.0-9A-Z^`a-z|~]+)=([!#$%&'*+\-.0-9A-Z^`a-z|~]*|"(?:[\x20-\x7E\x80\xFF]|\\[\x00-\x7F])*")(?=\s*[,;]|$)/g) .map( function($0, $1) { var name = $0, value = $1.charAt(0) === '"' ? $1 .substr(1, -1).replace(/\\(.)/g, "$1") : $1; cookies[name] = value; }); } return cookies; } function getCookie(name) { return getCookies()[name]; }
Chiunque di soccorso ?? –