当我选择一个文件并单击“将其发送到服务器”
时我收到错误:
ActionController::InvalidAuthenticityToken in MediasController#new_from_disk
Parameters:
{"upload"=>#<File:/var/folders/Fr/FrWbhcV1HdGpFgn7Lh7OhU+++TI/-Tmp-/RackMultipart20100802-4884-olu0e5-0>,
"CKEditorFuncNum"=>"42",
"langCode"=>"en",
"CKEditor"=>"object_content_body"}
根据我的理解,ckeditor上传程序将我的ruby操作发送给文件,然后我处理它。所以我不需要与我的new_from_disk操作相关联的视图(当前没有做任何事情)。
以下是您上传/浏览已上传内容的文档。它没有一个帮助我。 http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)/Custom_File_Browser
任何人都有任何提示/指南吗?
答案 0 :(得分:0)
默认情况下,Rails希望提交用户的真实性令牌 - 如果不是,则引发异常。这是为了防止CSRF(在Rails API上阅读更多内容)
每当您使用form_for
时,Rails都会将此真实性标记添加为隐藏输入,以便随表单一起提交。
由于您未使用form_for
(或其任何衍生产品),因此需要将此标记明确添加到您提交的参数中。您可以使用#{form_authenticity_token}
访问令牌的值。你如何提交它将取决于CKeditor的API。
或者,您可以基于每个操作禁用身份验证令牌检查(不推荐!),如下所示:
class MediasController < ApplicationController
skip_before_filter :verify_authenticity_token, :only => [:new_from_disk]
...
end