使用javascript更改数据方法不会改变ajax调用用户的方法吗?

时间:2012-03-30 01:47:53

标签: ruby-on-rails ruby ujs

我遇到了一个非常奇怪的问题,我很难解决问题。在我看来,我有data-remote="true"data-method="delete"的链接。当我单击链接时,我可以看到对我的rails服务器的DELETE请求。返回的JS代码然后更改此链接的属性,其中包括hrefdata-method

再次点击此链接后,即使我已将href更改为{{1},我的服务器也会收到对新data-method的请求,但旧请求DELETE (它仍然发送POST请求)。

但是,如果我刷新页面,则HTML与“新”HTML(使用我返回的JS更改)相同,但它实际上发送了正确的请求类型。这就是问题令我困惑的原因。

1 个答案:

答案 0 :(得分:10)

找到解决方案:确保使用 jQuery Element.data()方法设置html数据属性,例如" data-method"等等。

$(this).data('method', 'post'); # sets "data-method" attribute to "post"
$(this).data('method', 'delete'); # sets "data-method" attribute to "delete"

# "this" refers to the clicked link element for example