Recentemente sono passato alla chiusura di Google per un nuovo progetto. Ho difficoltà ad aggiungere il token di autenticità alle intestazioni in una chiamata Ajax. Come faccio a farlo?Come aggiungo il token di autenticità?
mio frammento di Ajax (utilizzando la classe 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'
});
Utilizzando rotaie nel backend.
UPDATE:
Log:
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)
ottengo un '#'. Forse non sta prendendo in considerazione il token auth? Ho aggiornato la mia domanda con il registro. –
Ho aggiornato la risposta di conseguenza. Sembra che tu abbia questa chiamata in un semplice file javascript. È necessario generare il token sul server, quindi è necessario farlo in una vista. –
Ho aggiornato la mia domanda. Non sta prendendo in considerazione il token auth in questo modo. –