我目前有一个事件模型、控制器和视图。我有一个更新事件的模式。它向更新操作发送一个ajax请求。然而,我目前收到来自ajax请求的'422 (无法处理的实体)‘。
该请求甚至没有命中控制器操作。(我在更新操作的顶部有一个binding.pry )
我不确定为什么这不起作用,因为我也使用相同的ajax请求来创建事件。
Ajax请求:
$.ajax({
url: $form.attr('action'),
type: "PATCH",
data: data,
success: this.onAjaxSuccess.bind(this),
failure: function (error) {
debugger
console.log(error)
}
});
表单操作为:/events/1
我试图通过删除任何不必要的代码(如数据)来执行更新操作,但仍然不走运。我也看到一些帖子建议skip_before_action :verify_authenticity_token,但也不起作用。
我不确定下一步的步骤,所以任何建议都将不胜感激。谢谢
发布于 2020-06-08 16:41:41
在评论中找到了Mark的答案。这是一个before action问题。我有一张过去需要的支票,但我忘了去掉。
发布于 2020-06-08 16:47:56
您的ajax请求可能需要csrf-token,使用Rails helper构建更新表单,然后向请求添加头部
headers: {
'X-Transaction': 'POST Example',
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}https://stackoverflow.com/questions/62258106
复制相似问题