【发布时间】:2015-12-15 18:40:50
【问题描述】:
我正在尝试做 jquery_ujs 正在做的事情,但是没有 ujs。我有一个链接应用程序,只有一个,它发布到销毁操作。我想避免出于性能目的使用 ujs。当单击使用ajax提交的链接时,我尝试使用jQuery生成表单。问题是,该操作将浏览器重定向到注销。我能够很好地点击控制器,但浏览器端没有任何反应。我知道 button_to 也可以解决这个问题,但我不能使用按钮。 为了清楚起见,我对表单数据进行了硬编码
$(document).ready(function() {
var csrf_token = $('meta[name=csrf-token]').attr('content');
var form = $("<form action='/app/logout' class='logout-form' method='post' accept-charset='UTF-8'></form>")
var input1 = $("<input name=_method' type='hidden' value='delete'>")
var input2 = $("<input name=authenticity_token' type='hidden'>").val(csrf_token)
form.hide().append(input1)
form.submit(logout)
$("a[data-method]").click(function(event){
event.preventDefault()
form.submit()
})
function logout(event) {
$.ajax({
url: '/app/logout',
type: 'POST',
data: {_method:"delete", authenticity_token: csrf_token, action: "destroy", controller: "internal/logins" }
})
event.preventDefault()
}
});
上面的代码构造了一个表单,在点击事件上提交
link_to("Logout", logout_path, :method => :delete)
【问题讨论】:
标签: javascript jquery ruby-on-rails ajax