我正在使用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
字段?