私はクライアント側でクッキーを設定するためにRestレスポンスを使用しています。しかし、Chromeで「リソース」を開いたときにクッキーが設定されているのを見ることはできません。面白いことに、私がクロムの設定に行き、すべてのクッキーをチェックするとき、私は設定しているクッキーを見つけます。もう一度、w3schoolsのgetCookie()JavaScript関数(またはすべての可能性を扱うためのより良いバージョン)では何も取りません。私はfirefoxを試しました、同じことが起こります。私はすべてのクッキーを見ると、私はクッキーを見ますが、JSの関数getCookie()は私に何も返しません。私はクッキーが正しく設定されていないと思う。ここで応答でJAX-RSクッキーがブラウザに表示されない
は私の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();
そして、これは奇妙だ、私の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]; }
誰でも救助する?? –