AJAX请求POST数据到rails控制器给出404

时间:2014-03-10 18:21:54

标签: jquery ruby-on-rails ruby ajax

我想通过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是否有效

1 个答案:

答案 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
});
相关问题