【问题标题】:How can I read the HTTP post request?如何读取 HTTP 发布请求?
【发布时间】:2015-10-09 03:11:17
【问题描述】:

我的问题很熟悉: How should I format a JSON POST request to my rails app?

我是 ruby​​ on rails 的菜鸟……只学习了 1 个月。 我创建了一个带有一些简单功能(如 CRUD)的 Rails。 现在,我想为智能手机制作一些简单的 API。

通过使用POSTMAN进行测试 GET 没问题。 但 POST 总是收到 Status 422 Unprocessable Entity

我的代码中有什么问题...或者我忘记了什么? 非常感谢...

以下是我的代码。

控制器:

  def index
    @users = User.all
    render :json => @users
  end

  # GET /beacons/1
  # GET /beacons/1.json
  def show
    @user = User.find(params[:id])
    render :json => @user
  end

  def create

    @user = User.new(user_params)
    @user.save

    respond_to do |format|
    format.json { render :json => @user }
    end
  end

  private

    def user_params
      params.require(:user).permit(:email, :password, :name)
    end

路线:

  namespace :api do
    namespace :v1 do
      resources :users, :defaults => { :format => :json } 
    end
  end

使用 rake 路由:

  api_v1_users GET    /api/v1/users(.:format)            api/v1/users#index {:format=>:json}
               POST   /api/v1/users(.:format)            api/v1/users#create {:format=>:json}

我的帖子:

{ "user": {"email": "2", "password": 2, "name": "2" } }

网址:

http://localhost:3000/api/v1/users

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    这可能是 CSRF 令牌的问题,在application_controller.rb,尝试替换

    protect_from_forgery with: :exception
    

    protect_from_forgery with: :null_session
    

    如果可能的话,请使用来自rails s 的错误日志发布您的问题

    【讨论】:

    • 哦!!!非常感谢您!!!似乎应该更多地关注如何设置 CSRF 令牌。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多