Rails + Heroku, короткие PATCH-запросы случайным образом не работают — почему?
Есть простенькая админка на RoR, хостится на Heroku, состоящая в основном из таблицы сущностей и простых CRUD-операций, большинство из которых реализованы через AJAX. Есть кнопки переключения булевых полей, PATCH-запросы в стиле /foo/4/toggle_bar, ответ не требуется, данных в запросе тоже больше никаких. Так вот именно эти запросы на некоторых системах/браузерах выдают ERR_EMPTY_RESPONSE. После долгих плясок поменял метод на POST и забыл, так как надо было использовать систему уже и сейчас, но природу бага так и не выяснил.
В итоге вопрос - неужели еще нельзя полноценно использовать PATCH-запросы или я что-то делаю не так?
Некоторые моменты, которые вводят меня в ступор:
- ловил в основном в Windows/Chrome с ошибкой выше, в том числе на свежем хроме. В том числе, если не изменяет память, на новой Опере
- даже ловил на одном свежем FF, там вообще мистика: после загрузки страницы первые два запроса проходят, остальные - нет, без объяснения причин
- на других машинах с Windows, Linux, Chrome, Chromium, FF работает. Логики версий не нашел
- на той же странице есть полноценная AJAX-форма с PATCH-запросом и она тоже работает
Дмитрий Полушкин: HTTP. Дефолтный procfile из доков Хероку. К ним с вопросом не обращался, так как все таки думаю, что проблема не у них, так как проявляется не во всех браузерах и вообще воспроизвести крайне проблематично.
Возможно если аккаунт бесплатный, то хероку медленно отдает ответ и соединение отваливается по таймауту и соответствено браузер неполучает никакого ответа.
Надо смотреть в логах каждый конкретный запрос, приходин ли он на сервер, у хероку вроде можно включить логирование и он будет сыпать все логи на консоль.
Дмитрий Полушкин: четко. Попались два Хрома, в которых не работало совсем никак, в остальных работало стабильно. Правда был один ФФ, где работали первые 2 запроса, а следующие - нет, причем, насколько помню, даже без сообщения в консоли. После перезагрузки страницы снова повторялось.
Дмитрий Полушкин: вроде как они это сами делать должны. И делают для формы, а для ссылки с remote: true - почему-то нет, а у меня именно такой случай оказался.