2016-05-25 2 views
1

У меня есть приложение Meteor 1.2, работающее на сервере (с использованием nginx в качестве прокси), который по разным причинам не поддерживает DDP. В этом случае приложение возвращается к опросу XHR и работает как ожидалось. Я также использовал его в режиме реального времени с переменной окружения DISABLE_WEBSOCKETS=1, чтобы тупо отключить веб-порты, которые я могу проверить на вкладке сети Chrome.Когда XHR вернется к запросам GET?

У меня есть некоторые сообщения об ошибках спорадических проблем, которые я не могу воспроизвести.

Похоже, что в некоторых случаях представления форм не используют POST, а возвращаются к GET (т. Е. Я могу видеть все данные формы в URL-адресе), и форма вообще не отправляется ,

При каких обстоятельствах XHR в Meteor возвращается с POST для получения? К сожалению, я не могу воспроизвести это и не увидеть ничего в журналах, которые могли бы предложить проблему.

+0

Как вы отправляете свою форму? Можете ли вы поделиться этим кодом? –

+0

Вы используете jQuery для xhr? и в этом случае вы используете $ .post, когда пользователь отправляет форму? например, @christianFritz, нам нужен html-код формы, а js, который управляет отправкой/сообщением – Rebolon

+0

@ChristianFritz. Это AutoForm MeteorJS, и, как и многие другие, с Meteor, сантехника между компонентами обрабатывается самой картой. Я посмотрю, смогу ли я извлечь какой-либо значимый код. – mpdonadio

ответ

0

Не похоже, что вы просмотрели фактические заголовки запроса неудавшейся формы, что может означать, что вы делаете предположение, что запрос является GET. Если я ошибаюсь, пожалуйста, поправьте меня. Если вы не можете увидеть заголовки, добавьте пользовательскую регистрацию, которая отличает POST и GET, чтобы вы могли прояснить, что это на самом деле GET.

Я думаю, что сообщение как-то не работает, и вам не хватает ошибки. Попытайтесь войти в логику на сервере, который обрабатывает сообщение формы, и создайте некоторые попытки поймать блоги и выполните некоторые пользовательские протоколирования. Это может привести к ошибке, которая может отсутствовать на стороне сервера. Кроме того, убедитесь, что в вашей базе данных включена регистрация. В базе данных может возникнуть ошибка, которая может отсутствовать. И если это не сработает, по крайней мере, у вас будет лучшая настройка мониторинга ошибок!

+0

Я вижу, что все параметры формы передаются по URL-адресу, поэтому я предполагаю, что это GET, а не POST, но вы правы, что я не смотрел на фактические заголовки. Я не могу воспроизвести проблему, поэтому ее трудно отладить. Я также уменьшаю это, потому что у этого вопроса есть щедрость, это было добавлено после щедрости, и я не думаю, что это хороший ответ на авто-награду. – mpdonadio

+0

Понял. Это может быть трудно отлаживать, потому что у вас могут не быть соответствующих механизмов отладки. Вот почему моя рекомендация состоит в том, чтобы добавить некоторые блоки catch catch и контролировать ведение журнала базы данных, чтобы исключение не вызывало проблемы. Ваша основа, по которой Meteor отправляет POST в сравнении с GET, выполняется только в том случае, если вы знаете, что это фактически POST. Вы сказали, что принимаете то, что посылает вас по ложной дороге. – wayofthefuture

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