Rails没有解析_method和authenticity_token表单数据fiels

时间:2017-10-06 10:29:16

标签: javascript ruby-on-rails axios

我正在使用axios发送requets,我当前的任务是发送删除用户的请求。所以我做了一个按钮和一个在点击时触发的功能。

 sendRequest(e) {
    const token = document.querySelector("meta[name=csrf-token]").getAttribute('content');

    axios.post('/users/2', {
      _method: 'DELETE',
      authenticity_token: token,
    }).then(response => {
      console.log(response)
    });

}

根据rails docs:

  

解析POSTed数据时,Rails会考虑特殊情况   _method参数,就像HTTP方法是在其中指定的那样(在本例中为“DELETE”)。

但是在发送请求后,我在控制台中出错:

ActionController::RoutingError (No route matches [POST] "/users/2"):

UPD 1:

试过简单的$ .ajax请求:

const token = document.querySelector("meta[name=csrf-token]").getAttribute('content');

$.ajax({
  method: "POST",
  url: "/users/2.json",
  data: { _method: "delete", authenticity_token: token }
})
 .done(function( msg ) {
   alert( "Data Saved: " + msg );
 })

它很有效。 axios post和ajax post request之间的区别是什么,所以rails无法解析axios _method字段?

0 个答案:

没有答案