如何在Jquery中获取响应会话cookie

时间:2015-05-01 07:19:32

标签: javascript jquery cookies playframework-2.0 session-cookies

我需要在JQuery中获取响应会话cookie。我需要知道会话是否已过期,我相信唯一的方法是检查来自服务器的响应是否包含会话cookie 我在后端使用play框架,它不会在后端保留会话详细信息并仅在cookie中保存会话详细信息

我试图从响应中获取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数据之外的所有标题特定数据。

你可以帮助我找回回复的cookie吗?

非常感谢您的帮助。

谢谢, 莫希特

1 个答案:

答案 0 :(得分:1)

你不需要在前端检查cookie,实际上你不应该这样做,特别是如果你关心安全性。

您的后端操作应该返回ok()结果以防万一。“

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

比你的jQuery中你应该使用successerror回调来处理它们。

编辑刚刚回答了非常类似的问题:https://stackoverflow.com/a/30001885/1066240,实际上要获取标题,您需要先设置它们(Cookie不是标题)