Rails:提供令牌时出现InvalidAuthenticityToken

问题描述:

我正尝试使用Java Applet将文件上传到我的Rails应用程序。不过,我不断收到以下错误,我想不通为什么:Rails:提供令牌时出现InvalidAuthenticityToken

处理CategoriesController#upload_image(用于127.0.0.1在2010-10-18 20点32分54秒)[POST] 参数:{ “partitionIndex”=>“0”,“fileId”=>“8278320”,“lastModified”=>“2010-09-18T14:31:12.610-0500”,“fileLength”=>“18571”,“fileName”= > “dreamstime_1038438.jpg.zip”, “partitionCount”=> “1”, “authenticity_token”=> “NHX938BYOQr/B4t1pb4pTMlgEFumfveXGxtROSChJpk =”, “文件”=>#}

的ActionController :: InvalidAuthenticityToken(ActionController的:: InvalidAuthenticityToken ): :10:在synchronize' C:/Ruby/lib/ruby/1.9.1/webrick/httpserver.rb:111:in服务' C:/Ruby/lib/ruby/1.9.1/webrick/httpser ver.rb:70:in run' C:/Ruby/lib/ruby/1.9.1/webrick/server.rb:183:in block in start_thread'

如上所示,我包含了参数authenticity_token。 authenticity_token参数由form_authenticity_token()生成。在同一页面中有一个表单,authenticity_token完全相同。任何想法,我在这里忽略?

真实性标记用于防止CSRF攻击(更多信息请见:Understanding the Rails Authenticity Token)。
也许你的applet没有维护它的会话?并且每个请求都作为单独的会话发送?这会导致你面临的错误发生。

+0

不保持会话可能是问题所在。 java applet将如何加入与包含它的页面相同的会话? – Stephan 2010-10-19 13:31:38

+0

我非常抱歉,但我不知道。尝试询问一个单独的问题,并将其标记为java小程序Q. – Faisal 2010-10-19 13:39:59

+0

谢谢,您对会话是正确的。我可以通过传递会话ID作为参数来复制页面会话。 – Stephan 2010-10-19 14:54:10