クライアント側でCookieを設定するためにRESTレスポンスを使用しています。しかし、Chromeで「リソース」を開いたときにCookieが設定されているのがわかりません。しかし、興味深いことに、Chromeの設定に移動してすべてのCookieを確認すると、設定しているCookieが見つかります。繰り返しますが、w3schoolsのgetCookie()javascript関数(またはすべての可能性を処理するためのより良いバージョン)は私に何もフェッチしません。Firefoxを試してみましたが、同じことが起こります。すべてのCookieを表示すると、Cookieが表示されますが、JS関数getCookie()は何も返しません。クッキーが正しく設定されていないと思います。
これが私の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);
Response.ok(jsonResponse、MediaType.APPLICATION_JSON)を返します
.cookie(cookie1、cookie2).build();
そしてこれは私のJSgetCookie()関数です
関数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
。スプリット(/[、;]/)
。地図(
function(cookie){
var Parts = cookie.split(/ = /、2)、name = decodeURIComponent(parts [0]
.trimLeft())、値=パーツ。長さ> 1?decodeURIComponent(parts [1]
.trimRight())
: ヌル;
クッキー[名前]=値;
});
} そうしないと {
c
。マッチ(
/(?:^|\s+)([!#$%&'*+\-.0-9A-Z^`az|~]+)=([!#$%&'*+\-.0 -9A-Z ^ `az |〜] * |"(?:[\ x20- \ x7E \ x80 \ xFF] | \\ [\ x00- \ x7F])* ")(?= \ s * [、; ] | $)/ g)
。地図(
function($ 0、$ 1){
var name = $ 0、value = $ 1.charAt(0)==='"'?$ 1
.substr(1、-1).replace(/\\(.)/g、 "$ 1")
:$ 1;
クッキー[名前]=値;
});
}
クッキーを返す;
}
関数getCookie(name){
getCookies()[name];を返します。
}
