jQuery Ajax appelle dans Rails 3 une requête 401 non autorisée

J’ai une application Rails 3.1 qui utilise le système pour l’authentification. J’essaie de faire un appel via ajax à une URL. Pour une raison quelconque, je continue à avoir 401 access non autorisé. J’ai suivi le tutoriel ici http://henrik.nyh.se/2008/05/rails-authenticity-token-with-jquery sur la façon d’authentifier les requêtes jQuery. Le code de la demande est

$.get('/chromosomes.json', {sequence_start: '10', sequence_end: '100'}, function(data){ alert(data) }, 'json'); 

Ce qui est étrange, c’est que sur le serveur que je vois

Ouverture de GET “/chromosomes.json?sequence_start=10&sequence_end=100&_=1320958293654” pour 127.0.0.1 le jeu. 10 nov. 15:51:33-0200 2011 Traitement par ChromosomesController # index en JSON Paramètres: {“sequence_start” => “10” , “_” => “1320958293654”, “sequence_end” => “100”} terminée en 10ms

Dans mon contrôleur j’ai:

 before_filter :authenticate_user! def index respond_to do |format| format.html format.json { render :json => @chromosomes } end end 

Pour une raison quelconque, le jeton de session d’authenticité n’est pas transmis à Rails. Si je supprime le authenticate_user! avant de filtrer ça marche bien !? Toute aide est fortement appréciée. Merci!

J’ai résolu ce problème en ajoutant: token_authenticatable à mon modèle d’utilisateur. Cela permet aux utilisateurs d’être authentifiés par des jetons de session.

Je développe en utilisant angularjs pour envoyer des requêtes REST, donc j’utilise ng-rails-csrf gem pour append un jeton csrf à chaque requête ajax envoyée pour authentifier.