Изменение метода данных с помощью javascript не меняет того, какой метод ajax вызывает у пользователей? - PullRequest
5 голосов
/ 30 марта 2012

Я столкнулся с очень странной проблемой, которую мне трудно исправить. На мой взгляд, у меня есть ссылка с data-remote="true" и data-method="delete". Когда я нажимаю на ссылку, я вижу запрос DELETE на мой сервер rails. Возвращенный код JS затем изменяет свойства этой ссылки, среди которых href и data-method.

При повторном нажатии этой ссылки мой сервер получает запрос к новому href, но со старым data-method, хотя я изменил его с DELETE на POST (он по-прежнему отправляет 1012 * запрос).

Однако, если я обновлю страницу, HTML будет таким же, как «новый» HTML (измененный с моим возвращенным JS), но на самом деле он отправляет правильный тип запроса. Вот почему этот вопрос меня озадачивает.

1 Ответ

10 голосов
/ 02 июня 2012

Нашли решение: убедитесь, что вы используете 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
...