为我的XML获取ActionController :: InvalidAuthenticityToken

时间:2010-07-03 01:05:06

标签: ruby-on-rails controller

我正在使用第三方API。该服务器应该POST回我的URL。

我的网址是:

http://www.mydomain.com/teleku/playvoice.xml

控制器有一些逻辑,但基本上包含一个respond_to do块,相应的视图是一个非常基本的xml构建器。

但是,我在日志中收到以下错误:

  

的ActionController :: InvalidAuthenticityToken   (ActionController的:: InvalidAuthenticityToken):   haml(2.2.17)[v]   LIB / SASS /插件/ rails.rb:19:在   process_without_compass' compass (0.8.17) [v] lib/compass/app_integration/rails/action_controller.rb:7:in 过程

2 个答案:

答案 0 :(得分:3)

要禁用此检查,请将此添加到您的控制器:

protect_from_forgery :except => [:your_method_name]

答案 1 :(得分:0)

行。这就是我能想到的:

示例说明:

http://www.teleku.com/examples#highlowruby

来自teleku提供的示例要点:

http://gist.github.com/raw/317657/38cd329895c79bd49e91304a6fe7cb1f88e02065/HighLow%20Ruby%20Sinatra%20Teleku%20PhoneML%20Voice%20Applications

看起来不需要身份验证令牌。所以你可以用curl来测试,

curl --data-urlencode "callerinput=lower" http://highlow.heroku.com/guess/10 我的猜测是10,我打赌低于经销商随机选择的数字。 有用。但是如果你想让它在你的应用程序中工作,你应该将真实性标记编码到网址中。例如,如果同一个应用程序启用了protect_from_forgery,那么它将是:

curl --data-urlencode "callerinput=lower&authenticity_token=blahblahblah" http://highlow.heroku.com/guess/10"