简体   繁体   English

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

[英]AJAX Request POST data to rails controller gives 404

I want to post data to a rails controller via an AJAX request 我想通过AJAX请求将数据发布到Rails控制器

My route: get "pki_login/authenticate" => "pki_logins#authenticate" 我的路线: get "pki_login/authenticate" => "pki_logins#authenticate"

The JS: JS:

$.ajax({
    type: 'POST',
    url: '/pki_login/authenticate',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: function(data) {
        alert("Successful");
      },
    data: passcode
});

then inside pki_logins_controller.rb i have: 然后在pki_logins_controller.rb内部,我有:

def authenticate
  puts params[:passcode]
end

the authenticate.html.erb file just contains a h3 tag. authenticate.html.erb文件仅包含一个h3标签。

I can visit /pki_login/authenticate and it works, but when accessing via AJAX I get a 404 so I don't even know if the POST works either 我可以访问/ pki_login / authenticate,它可以工作,但是通过AJAX访问时,我得到了404,所以我什至不知道POST是否可以工作

You're defining a get route but making POST request. 您正在定义一条get路线,但发出POST请求。

Try: 尝试:

$.ajax({
    type: 'GET',
    url: '/pki_login/authenticate',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: function(data) {
        alert("Successful");
      },
    data: passcode
});

Or change the route to post and use post ajax request as: 或更改post路线,并将post ajax请求用作:

# config/routes.rb
post "pki_login/authenticate" => "pki_logins#authenticate"

Then the ajax call: 然后,ajax调用:

$.ajax({
    type: 'POST',
    url: '/pki_login/authenticate',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: function(data) {
        alert("Successful");
      },
    data: passcode
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM