React / Rails AJAX POST请求返回404

时间:2017-01-30 03:29:50

标签: javascript jquery ruby-on-rails ajax reactjs

我试图在我的react组件中连接这个AJAX POST请求,以便与我的rails api控制器通信。控制台记录404错误,我似乎无法点击撬。

反应/ SRC /页/ HomeIndex.js

  getCompare() {
    $.ajax({
      url: '/api/sources/compare',
      type: 'POST',
      data: {value: this.state.inputValue, from: this.state.compareFrom, to: this.state.compareTo },
      contentType: 'application/json'
    })
  }

控制器/ API / sources_controller.rb

  def compare
    binding.pry
  end

配置/路由

  post '/api/sources/compare', to: 'api/sources#compare'

  namespace :api do
    resources :sources, only: [:index, :compare]
  end

佣金路线

api_sources_compare POST /api/sources/compare(.:format) api/sources#compare

更新

我尝试用几种排列更新路线......

  namespace :api do
    resources :sources, only: [:index] do
      collection do
        post :compare
      end
    end
  end

  namespace :api do
    resources :sources, only: [:index, :compare] do
      collection do
        post :compare
      end
    end
  end

  namespace :api do
    resources :sources, only: [:index] do
      collection do
        resources :compare, only: [:compare]
      end
    end
  end

  namespace :api do
    resources :sources do
      post :compare
    end
  end

......所有结果都相同。

1 个答案:

答案 0 :(得分:1)

您可以通过对AJAX有效负载进行字符串化来解决此问题,如下所示:



getCompare() {
    let data = JSON.stringify({value: this.state.inputValue, from: this.state.compareFrom, to: this.state.compareTo })
    $.ajax({
      url: '/api/sources/compare',
      type: 'POST',
      data: data,
      contentType: 'application/json'
    })
  }




相关问题