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

Jor*_*les 5 ruby ruby-on-rails ujs

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

再次单击此链接后,我的服务器正在接收对新服务器的请求href,但使用旧服务器data-method,即使我已将其更改DELETEPOST(它仍然发送DELETE请求).

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

Mak*_*ibo 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
Run Code Online (Sandbox Code Playgroud)