我需要在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吗?
非常感谢您的帮助。
谢谢, 莫希特
答案 0 :(得分:1)
你不需要在前端检查cookie,实际上你不应该这样做,特别是如果你关心安全性。
您的后端操作应该返回ok()
结果以防万一。“
如果用户未登录,您可以在Scala中返回unathorized()
(Unathorized()
)。
比你的jQuery中你应该使用success
或error
回调来处理它们。
编辑刚刚回答了非常类似的问题:https://stackoverflow.com/a/30001885/1066240,实际上要获取标题,您需要先设置它们(Cookie不是标题)