如何解决Rails的默认CSRF元标记未生效
| 我刚刚验证了一个新站点,这是一个我已经使用Rails 3通过W3C标记验证编写的新站点,并且我正在获得关于rails生成的CSRF标签的错误。 \“元素meta上属性名称的错误值csrf-param:关键字csrf-param未注册。”<meta name=\"csrf-param\" content=\"authenticity_token\"/>
和
\“元素meta上属性名称的值csrf-token错误:关键字csrf-token未注册。”
<meta name=\"csrf-token\" content=\"{token}\"/>
我将DOCTYPE设置为
<!DOCTYPE html>
据我所知,我不必添加任何其他内容。任何人都可以阐明这一点吗?
编辑
我正在使用HAML,想知道这是否可能是一个因素,所以我设置了一个测试页面,该页面具有单个控制器/动作/视图,并且仅使用Rails的默认erb模板。问题仍然存在。
http://validator.w3.org/check?uri=http%3A%2F%2Fcsrftestsite.heroku.com%2Fhome&charset=%28detect+automatically%29&doctype=Inline&group=0&user-agent=W3C_Validator%2F1.2
解决方法
您不必为此担心。 HTML5元标记使用起来非常开放。验证的全部目的是,根据W3C规范,从技术上讲,这些不是“合法的” HTML5元数据名称,但不会影响功能。这是meta标签建议的扩展列表:
http://wiki.whatwg.org/wiki/MetaExtensions
csrf-token和csrf-param已经以“提案”状态在列表中。如果将这些内容添加到W3C规范中,您将不再看到此验证错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。