我试图在我的react组件中连接这个AJAX POST请求,以便与我的rails api控制器通信。控制台记录404错误,我似乎无法点击撬。
getCompare() {
$.ajax({
url: '/api/sources/compare',
type: 'POST',
data: {value: this.state.inputValue, from: this.state.compareFrom, to: this.state.compareTo },
contentType: 'application/json'
})
}
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
......所有结果都相同。
答案 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'
})
}