ajax – Rails呈现JSON – 会话丢失?
发布时间:2020-12-15 22:53:26 所属栏目:百科 来源:网络整理
导读:我正在尝试对一个响应 JSON的控制器进行一些Ajax调用. if session[:user] render :json = "Some Data"else render :json = "You are not logged in"end 第一次由authed用户调用此操作时,一切正常,session [:user]为!= nil. 它第二次被调用它是零! 所以看
我正在尝试对一个响应
JSON的控制器进行一些Ajax调用.
if session[:user] render :json => "Some Data" else render :json => "You are not logged in" end 第一次由authed用户调用此操作时,一切正常,session [:user]为!= nil. 所以看起来rails一旦渲染就会失去它的会话:json.我发现在第一个调用rails中用一个新的覆盖了* _session-cookie.因为rails不知道初始的,authed会话. 如果我不将响应呈现为JSON,一切正常. 如何强制rails在JSON渲染页面中设置与普通视图中相同的sessionid? 解决方法
经过六天的搜索,我终于做到了:
由于缺少X-CSRF-Token标头,似乎rails会破坏会话.我现在在JQuery的ajaxSend Hook中添加此标头: $(document).ajaxSend(function(e,xhr,options) { var sid = $("meta[name='csrf-token']").attr("content"); xhr.setRequestHeader("X-CSRF-Token",sid); }); 它现在按预期工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |