Javascript Rails没有解析\u方法和真实性\u令牌表单数据域
我正在使用axios发送请求,我当前的任务是发送删除用户的请求。所以我做了一个按钮和一个函数,点击就会触发Javascript Rails没有解析\u方法和真实性\u令牌表单数据域,javascript,ruby-on-rails,axios,Javascript,Ruby On Rails,Axios,我正在使用axios发送请求,我当前的任务是发送删除用户的请求。所以我做了一个按钮和一个函数,点击就会触发 sendRequest(e) { const token = document.querySelector("meta[name=csrf-token]").getAttribute('content'); axios.post('/users/2', { _method: 'DELETE', authenticity_token: token,
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文档:
在分析发布的数据时,Rails将考虑特殊的
_方法参数,并将HTTP方法视为其中指定的方法(本例中为“删除”)
但在发送请求后,控制台中出现了一个错误:
ActionController::RoutingError(没有与[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请求之间有什么区别,这样rails就不会解析axios
\u方法
字段了?为什么不使用axios.delete
?@artgb使用axios.delete时也一样,但是使用了Authentity\u标记。但无论如何,我想弄清楚为什么它不能与post请求和_方法字段一起工作。也许我遗漏了什么?你为什么不使用axios.delete
?@artgb使用axios.delete时也一样,但带有Authentity\u标记。但无论如何,我想弄清楚为什么它不能与post请求和_方法字段一起工作。也许我错过了什么?