2012-02-29 9 views
0

私のAjax呼び出しを供給しても、無効なauth_tokenエラーがスローされますCURLを使用してリクエストしてください:アプリをレールにAJAX経由でJSONを投稿することAPI_KEYが

curl -H 'Content-Type: application/xml' -d '<object><name>Test API Object</name></object>' http://acme.domain.vhost/objects.xml?api_key=123 

私はここで間違っていますか?私はhtmlでフォームをポストしていない限り、authenticity_tokenは必要ありません。また、api_keyを供給していません。

SELECT * FROM `users` WHERE (`users`.`api_key` = '123') AND (users.deleted_at IS NULL OR users.deleted_at > '2012-02-29 23:12:25') LIMIT 1 

私は私のデータベースに、それは正しいユーザーを返すことをコピー... それでは、なぜISN」:エラーがこのする前に、本当に混乱しているもの

は、コンソール内の最後の行でありますajaxリクエストは機能していますか?

UPDATE: curlをPOSTに変更したので、文字通りajaxリクエストと完全に同じです。

答えて

0

protect_from_forgeryが有効で、あなたのAPIコールにcsrf_tokenが渡されていないと思います。

私は通常、ApplicationControllerからAPIコントローラを派生させないようにしています。csrfのセキュリティを維持することは素晴らしいことですが、APIでは使用できません。

+0

しかし、curlコマンドは正常に動作します。カールは、同じアクションオブジェクト/作成に対しても機能します。カールにはcsrf_tokenは必要ありません。 = \ – NullVoxPopuli

+0

あなたのカールのリクエストでは、あなたはenythingを作成しないので、csrfの問題はありません – apneadiving

+0

私はカールの例を投稿しますPOST – NullVoxPopuli

関連する問題