Railsでformメソッドを使わずにPOSTなど、GET以外でデータを送信すると ActionController::InvalidAuthenticityToken というエラー(HTTPステータスコード422)が返されることがあります これはRails標準のCSRF対策で、GET以外のデータ受信時にサーバ側で生成されるトークンが要求されるために起こります formメソッドを使えば自動的にトークンを生成して埋め込んでくれますので普通は遭遇しないのですが… 今回自分はGreasemonkeyScriptからxmlhttpRequestでPOSTして嵌りました 今回は外部から利用してもらうこと(APIのつもり)が前提なのでそのメソッドだけ skip_before_filter :verify_authenticity_token ,:only=>[:action_name] をコントロ