如何在 Jquery 中获取响应 session cookie

How to get response session cookie in Jquery

我需要在 JQuery 中获得响应 session cookie。我需要知道 session 是否已过期,我相信唯一的方法是检查服务器的响应是否包含 session cookie 我在后端使用播放框架,它不在后端保留 session 细节,只在 cookie 中保留 session 细节

我试图从这样的响应中获取 cookie -

    $.ajax({type:'POST', url: '@@{search()}',      data:$('#searchForm').serialize(),
        success: function(data, testStatus, jqXHR) {
            if (data.indexOf("errorsSection") > 0) {
                alert("trying to get access of cookies from response header in if :"+ jqXHR.getResponseHeader("PLAY_SESSION"));
                $('#searchResults').hide();
                $('#errors').html(data);
                $('#errors').show();
            } else {
alert("trying to get access of cookies from response header in else :"+ jqXHR.getResponseHeader("PLAY_SESSION"));
                alert("trying to get access of cookies from response header in else :"+ jqXHR.getAllResponseHeaders());
                alert("in else::::" + $.cookie("PLAY_SESSION") );

                $('#errors').hide();
                $('#searchResults').html(data);
                $('#searchResults').show();}

jqXHR.getResponseHeader("PLAY_SESSION") 返回 null,而 jqXHR.getAllResponseHeaders() 给出除 cookie 数据之外的所有 header 特定数据。

你能帮我从响应中找到 cookie 吗?

非常感谢您的帮助。

谢谢, 莫希特

您不需要在 front-end 中检查 cookie,实际上您不应该这样做,特别是如果您关心安全。

您的后端操作应该 return ok() 结果以防一切正常。

如果用户未登录,您可以 return unathorized()Unathorized() 在 Scala 中)。

比起在 jQuery 中,您应该使用 successerror 回调来处理它们。

编辑: 刚刚回答了非常相似的问题:https://whosebug.com/a/30001885/1066240,实际上要获得 header 你需要先设置它们(cookie 不是 header)