POST не завершится, если я обновлю страницу - PullRequest
0 голосов
/ 08 марта 2012

У меня есть форма, использующая $ .ajax при отправке для вызова сценария bash, который записывает данные в текстовый файл.

В Firefox, если я немедленно обновляю страницу или перехожу на другую страницу,POST прерывается, и текстовый файл не обновляется:

[15: 07: 12.781] POST http://server/writegit.cgi [undefined 891ms]

Если я ждуза секунду или две до обновления POST завершается и все в порядке:

[15: 03: 04.995] POST http://server/writegit.cgi [HTTP / 1.1 200 OK 2022ms]

Однако эта проблема не возникает в Chrome - после отправки формы POST завершится, даже если я обновлю страницу немедленно.

Есть ли способ заставить Firefox вести себя как Chrome

1 Ответ

4 голосов
/ 08 марта 2012

Ajax-вызовы являются асинхронными - это означает, что они срабатывают, и когда-нибудь в будущем придет ответ. Код не ждет ответа. Если вы уходите со страницы до того, как это произойдет, вы вытаскиваете коврик из-под запроса.

Либо сделайте вызов синхронным, либо добавьте некоторый обработчик события «onbeforeunload», чтобы проверить, завершился ли ваш вызов ajax, прежде чем разрешить пользователю перемещаться со страницы.

или: просто не обновляйте страницу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...