0

POSTリクエストルートを次のように構築しました:

match '/getActivatedFriends',
  to: 'requests#getActivatedFriends', via: 'post',
  constraints: { friends_phone_number_csv: /([0-9]+,?)+/ } 

アクション付き:

def getActivatedFriends
    @results = BusinessUser.find_by_sql("SELECT 
                                            a.id
                                         ,  a.username
                                         ,  a.phoneNumber
                                         FROM users a
                                         WHERE phoneNumber in ('+params[:friends_phone_number_csv]+') and
                                               removed = 0 and
                                               is_user = 1;")

    respond_to do |format|
        format.html
        format.json { render json: { friends_match: @results }}
    end         
end

これにより、一致するユーザーの JSON オブジェクトが返されます。私はPOSTMANで次のようにテストしました:

ここに画像の説明を入力

しかし、返されるのは、無効な認証トークンを示すエラーです

この POST ルートが機能するように再構成するにはどうすればよいですか?

4

1 に答える 1

6

デフォルトでは、Rails はCSRF protectionコントローラーで使用します。認証トークンを使用してフォームに追加されます。hidden_fieldただし、フォームを使用しない場合はCSRF protection、検証 before_action をスキップしてコントローラーで無効にすることができます。リクエスト コントローラーの先頭に追加します。

skip_before_filter :verify_authenticity_token

またはRails 4 and 5(同じコマンドです):

skip_before_action :verify_authenticity_token
于 2015-03-29T18:50:21.257 に答える