2016-01-28 4 views
0

Я создал форму только с кнопкой отправки. Вот мой код в представлении:Форма POST продолжает делать запрос GET

<%= button_to searches_send_request_path, class: "btn btn-warning", id: "contact" do %> 
    <i class="fa fa-envelope"> &nbsp; Send Request</i> 
<% end %> 

В средстве разработки Chrome, он показывает форму в HTML:

<form class="button_to" method="post" action="/searches/send_request"> 
    <button class="btn btn-warning" id="contact" type="submit"> 
    <i class="fa fa-envelope"> &nbsp; Send Request</i> 
    </button> 
</form> 

Однако, когда я нажимаю кнопку, он продолжает посылать запрос GET. Любые идеи, что происходит?

+0

Вы можете добавить рельсы form_for, которые вы используете? –

+0

У меня этого нет. С button_to мне не нужно будет form_for. Как вы можете видеть в разделе html в моем сообщении, button_to автоматически создаст форму. – WeiRoR

ответ

0

HTML, который вы предоставили, представляет форму с использованием POST, это точно. Вероятно, у вас есть код JS, который заменяет POST на GET.

+0

У меня нет JS, связанных с этой страницей. Или я могу проверить это? – WeiRoR

+0

Попробуйте отладить его с помощью консоли Chrome (F12). Убедитесь, что метод все еще GET. Проверьте наличие ошибок на вкладке «console», возможно, есть некоторая ошибка, предотвращающая работу Rails ujs. Затем вы можете попробовать проверить события, связанные с этой формой. –

0

button_to по умолчанию POST ...

он по умолчанию будет выполняя операцию POST

Поскольку вы явно не установить ваши method, как GET, это наводит на мысль у вас есть вопрос выше в стек браузера.


Ключ можно найти в link_to документации:

Обратите внимание, что если у пользователя JavaScript отключен, запрос вернется к использованию GET

В частности, что ваш javascript либо отключен, либо ошибочен; общая проблема, которая приводит к функциональности, которую вы испытываете.

-

Исправление сделать , что ваш Javascript работает правильно. Самый простой способ сделать это - загрузить «консоль разработчика», на которую вы сможете увидеть любые ошибки в Javascript.

В Chrome вы можете Right-Click > Inspect Element - это покажет console, из которого вы будете в состоянии идентифицировать любой из ошибок ваш JS возвращается:

enter image description here

Если вы сделаете это, я 'будет в лучшем положении, чтобы помочь вам решить любые проблемы, которые могут возникнуть.

Смежные вопросы