0

在我制作的应用程序中,我收到了很多这样的消息:

A ActionController::InvalidAuthenticityToken occurred in items#vote_up:
  ActionController::InvalidAuthenticityToken
  /var/lib/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/request_forgery_protection.rb:79:in `verify_authenticity_token'

我怀疑它正在发生,因为人们在该页面上花费了大量时间而没有刷新它(它使用 ajax)并且令牌过期。

有没有办法让这些代币寿命更长?

4

1 回答 1

2

时间限制没有理由导致此异常。ActionController::InvalidAuthenticityToken当请求中收到的伪造保护令牌与应有的不同时会导致异常。

以下是您可以添加到 JavaScript 中的一些代码,以添加正确的防伪令牌:

$.ajax({
  url: url,
  data: {
    authenticity_token: <%= form_authenticity_token.to_json %>,
    ...
  }
});

这样,您的令牌将是正确的。

于 2010-02-13T00:20:30.743 回答