调用时 404 错误 jQuery.post
404 Error when calling jQuery.post
我在 rails 申请中尝试 jquery.post。结果我收到 404(未找到)错误。
错误
POST http://localhost:3000/user_versions/create/1/13/ 404(不是
找到)jquery.js?body=1:9632
jQuery.ajaxTransport.sendjquery.js?body=1:9177
jQuery.extend.ajaxjquery.js?body=1:9323 jQuery.each.jQuery.(匿名
function)apps.js?body=1:53 (匿名函数)jquery.js?body=1:4642
jQuery.event.dispatchjquery.js?body=1:4310
jQuery.event.add.elemData.handle
routes.rb
post 'user_versions/create/:user_id/:version_id', to: 'user_versions#create'
apps.js.erb
$('.download-btn').on('click', function(e){
e.preventDefault();
var build = $(this).data('build');
var user_id = $('#current_user_id').val();
console.log(build);
console.log(user_id);
var path = "/user_versions/create/" + user_id + "/" + build + "/";
$.post( path, function( data ) {
console.log(data);
});
});
user_versions_controller.rb
class UserVersionsController < ApplicationController
def create
user = params[:user_id]
version = params[:version_id]
UserVersion.find_or_create_by(user: user, version: version)
render text: "success"
end
end
更新
我更新了代码以遵循@maxd 的建议。我在 rails 视图中没有得到的错误是
POST http://localhost:3000/user_versions/create/1/3 500(内部服务器错误)jquery.js?body=1:9632 jQuery.ajaxTransport.sendjquery.js?body=1:9177 jQuery.extend.ajaxjquery.js?body=1:9323 jQuery.each.jQuery.(匿名函数)apps.js?body=1 :53 (匿名函数)jquery.js?body=1:4642 jQuery.event.dispatchjquery.js?body=1:4310 jQuery.event.add.elemData.handle
当我在 Postman 中调用相同的方法时,它得到一个 422 不可处理的实体状态
1) 尝试从 ... to: 'user_versions/#create'
中删除 /
2) 检查 URL 路径使用 rake routes | grep user_versions
.
路径应该是'/user_versions/create',post数据放在对象中,如:
var data = {
user_id: user_id,
version_id: build
};
$.post( path, data, function( data ) {
console.log(data);
});
我在 rails 申请中尝试 jquery.post。结果我收到 404(未找到)错误。
错误
POST http://localhost:3000/user_versions/create/1/13/ 404(不是 找到)jquery.js?body=1:9632 jQuery.ajaxTransport.sendjquery.js?body=1:9177 jQuery.extend.ajaxjquery.js?body=1:9323 jQuery.each.jQuery.(匿名 function)apps.js?body=1:53 (匿名函数)jquery.js?body=1:4642 jQuery.event.dispatchjquery.js?body=1:4310 jQuery.event.add.elemData.handle
routes.rb
post 'user_versions/create/:user_id/:version_id', to: 'user_versions#create'
apps.js.erb
$('.download-btn').on('click', function(e){
e.preventDefault();
var build = $(this).data('build');
var user_id = $('#current_user_id').val();
console.log(build);
console.log(user_id);
var path = "/user_versions/create/" + user_id + "/" + build + "/";
$.post( path, function( data ) {
console.log(data);
});
});
user_versions_controller.rb
class UserVersionsController < ApplicationController
def create
user = params[:user_id]
version = params[:version_id]
UserVersion.find_or_create_by(user: user, version: version)
render text: "success"
end
end
更新
我更新了代码以遵循@maxd 的建议。我在 rails 视图中没有得到的错误是
POST http://localhost:3000/user_versions/create/1/3 500(内部服务器错误)jquery.js?body=1:9632 jQuery.ajaxTransport.sendjquery.js?body=1:9177 jQuery.extend.ajaxjquery.js?body=1:9323 jQuery.each.jQuery.(匿名函数)apps.js?body=1 :53 (匿名函数)jquery.js?body=1:4642 jQuery.event.dispatchjquery.js?body=1:4310 jQuery.event.add.elemData.handle
当我在 Postman 中调用相同的方法时,它得到一个 422 不可处理的实体状态
1) 尝试从 ... to: 'user_versions/#create'
/
2) 检查 URL 路径使用 rake routes | grep user_versions
.
路径应该是'/user_versions/create',post数据放在对象中,如:
var data = {
user_id: user_id,
version_id: build
};
$.post( path, data, function( data ) {
console.log(data);
});