我有一个名为ProductsController的控制器,我为.NET客户端应用程序的PUT API调用创建了一个名为set_status的动作.我已经正确设置了所有设置,但在发送请求后,我收到"无法验证CSRF令牌真实性"错误.我的应用程序控制器中有以下内容用于CSRF保护:
protect_from_forgery
为了绕过CSRF保护,我在产品控制器中添加了以下内容:
skip_before_filter :set_status
在使用此更改进行测试后,我仍然收到相同的错误消息.根据我的理解,上面的代码行应该禁用Products控制器中的set_status操作的CSRF保护,但它似乎不起作用.
有没有人知道为什么这可能不起作用?非常感谢你提前!
我想到了!这是我的代码:
skip_before_filter :verify_authenticity_token, :only => [:set_status]
我忘记了protect_from_forgery语句创建了自己的方法.其中一种方法是verify_authenticity_token,因此它比我想象的要简单得多.我之前被卡住了,因为我没有verify_authenticity_token方法,但实际上我做了因为它是自动生成的.