栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Rails无法在Ajax帖子上重新加载会话

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Rails无法在Ajax帖子上重新加载会话

我将回答自己的问题,因为我已经设法弄清了正在发生的事情。如果对其他人有用,我会在这里发布!

经过进一步调查,我发现 应该 使用CSRF令牌设置请求标头的代码不是。这是原始代码:

$(document).ajaxSend(function(e, xhr, options) {  var token = $("meta[name='csrf-token']").attr('content');  xhr.setRequestHeader('X-CSRF-Token', token);});

发生的事情是此代码未设置标头,Rails正在接收Ajax请求,令牌不匹配,并且正在重置会话。这曾经引发一个ActionController ::
InvalidAuthenticityToken错误(如果引发错误,我想我会早点抓到这个……好吧),但是自从Rails
3.0.4起,它现在只是悄悄地重置了会话。

因此,要在标头中发送令牌,您必须执行此操作(非常感谢这篇出色的博客文章):

$.ajaxSetup({  beforeSend: function(xhr) {    xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));  }});

现在一切正常。很好



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号