我有一个cookie,它是在服务器端创建的(Rest服务)。下面是创建cookie的rest服务:
@Path("token")
public class AuthService {
@POST
@Produces(MediaType.APPLICATION_JSON)
public Response generateToken(@Context HttpServletRequest httpServletRequest) {
//some code to get serializedJwt and xsrftoken. path is "/" and domain is "http://localhost"
Cookie jwtCookie = new Cookie("jwt", serializedJwt, path, domain);
Cookie xsrfCookie = new Cookie("X-XSRF-TOKEN", xsrfToken, path, domain);
NewCookie newJwtCookie = new NewCookie(jwtCookie, null, maxAge, false);
NewCookie newXsrfCookie = new NewCookie(xsrfCookie, null, maxAge, false);
return Response.status(SUCCESSFUL_REQUEST)
.header(ERROR_HEADER_NAME, SUCCESS)
.header("SET-COOKIE", newJwtCookie.toString()+" ; HttpOnly")
.header("SET-COOKIE", newXsrfCookie.toString())
.entity(MAPPER.writeValueAsString(responseBody)).build();
}
}现在我正在尝试从angular js(v1.4.6)应用程序中检索这个cookie。
console.log($cookies.get("X-XSRF-TOKEN")); //prints undefined
$cookies.put('abc',"kishore"); //just for testing purpose
console.log($cookies.get("abc")); //this prints kishore
console.log(document.cookie); //this prints "abc=kishore"注意:对于X-XSRF-TOKEN,httpOnly为false。
发布于 2015-10-09 18:46:13
删除domain=http://localhost后问题得到解决
Point from Stack overflow which helped:
• By design domain names must have at least two dots otherwise browser will say they are invalid.
• Explicit setting domain cookie on localhost doesn't work for chrome.
• You can only set domain cookies for registry controlled domains, i.e. something ending in .com or so, but not IPs or intranet hostnames like localhosthttps://stackoverflow.com/questions/32963667
复制相似问题