我正在提交一个简单的 ajax 删除请求,如下所示:
#invitation_actions
=link_to "delete", invitation_path(invitation), :method=>:delete, :remote=>true, :class=>"remove", :confirm=>'Are you sure you?'
请注意,由于所有页面中都包含 csrf_meta_tag 标记,因此具有请求的页面包含authentity_token。
当我查看日志时,我发现删除请求缺少authentity_token:
在 2011-04-22 11:21:21 -0700 开始 DELETE "/invitations/5" for 127.0.0.1 由 InvitationsController#destroy 作为参数处理:{"id"=>"5"}
现在,如果我从代码中删除“:remote =>:true”,即我执行常规页面加载删除工作,我在日志文件中看到以下内容:
在 2011-04-22 12:52:19 -0700 开始 POST "/invitations/10" for 127.0.0.1 由 InvitationsController#destroy 作为 HTML 参数处理:{"authenticity_token"=>"qlT8uX/WGQeOQSmVZzw1v8rFdSTHDRbzNY0zpSc9mV0=", "id" =>“5”}
为什么在 AJAX 情况下是 DELETE 而在非 AJAX 情况下是 POST?为什么 DELETE 不包含authenticity_token?
谢谢你的帮助。