我想通过AJAX请求将数据发布到rails控制器
我的路线:get "pki_login/authenticate" => "pki_logins#authenticate"
JS:
$.ajax({
type: 'POST',
url: '/pki_login/authenticate',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data) {
alert("Successful");
},
data: passcode
});
然后在pki_logins_controller.rb
里面我有:
def authenticate
puts params[:passcode]
end
authenticate.html.erb
文件只包含h3
标记。
我可以访问/ pki_login / authenticate并且它可以工作,但是当通过AJAX访问时我得到了404,所以我甚至不知道POST是否有效
答案 0 :(得分:6)
您正在定义get
路由,但要求POST
。
尝试:
$.ajax({
type: 'GET',
url: '/pki_login/authenticate',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data) {
alert("Successful");
},
data: passcode
});
或者将路线更改为post
并使用post
ajax请求:
# config/routes.rb
post "pki_login/authenticate" => "pki_logins#authenticate"
然后是ajax调用:
$.ajax({
type: 'POST',
url: '/pki_login/authenticate',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data) {
alert("Successful");
},
data: passcode
});