如何添加真实性令牌?

我最近切换到谷歌关闭一个新项目。 我无法在ajax调用中将真实性标记添加到标头中。 我该怎么做?

我的Ajax片段(使用goog.net.XhrIo类):

var initialHTMLContent = superField[i].getCleanContents(); var data = goog.Uri.QueryData.createFromMap(new goog.structs.Map({ body: initialHTMLContent })); goog.net.XhrIo.send('/blogs/create', function(e) { var xhr = /** @type {goog.net.XhrIo} */ (e.target); alert(xhr.getResponseXml()); }, 'POST', data.toString(), { 'Accept' : 'text/xml' }); 

在后端使用导轨。

更新:

日志:

 Processing BlogsController#create (for 127.0.0.1 at 2010-06-29 20:18:46) [PUT] Parameters: {"authenticity_token"=>""} ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken): Rendered rescues/_trace (272.4ms) Rendered rescues/_request_and_response (1.2ms) Rendering rescues/layout (unprocessable_entity) 

在rails视图(.html.erb文件)中的某个位置,您可以像这样设置一个js变量:

 window._token = '<%= form_authenticity_token %>'; 

然后将其附加到您的通话中:

  goog.net.XhrIo.send('/blogs/create?authenticity_token=' + window._token, function(e) { var xhr = /** @type {goog.net.XhrIo} */ (e.target); alert(xhr.getResponseXml()); }, 'POST', data.toString(), { 'Accept' : 'text/xml' }); 

Rails现在会自动为它添加元标记,因此您可以在页面javascript中使用:

  token = $( 'meta[name="csrf-token"]' ).attr( 'content' )