Похоже, что Chrome не запускает javascript xmlhttprequests после отправки формы, но FF и IE делают - PullRequest
1 голос
/ 09 ноября 2011

Я использую этот маленький трюк, чтобы обновить текущую страницу во время загрузки следующей страницы.Когда пользователь нажимает кнопку «Отправить», я устанавливаю интервальный таймер, который выполняет xhr обращения к серверу, чтобы узнать, сколько времени займет ответ, и обновляет страницу этой информацией, таким образом успешно развлекая пользователя.В Firefox и IE это работает нормально, но в chrome кажется, что после отправки формы вызов setinterval будет по-прежнему запускаться, но xmlhttprequest фактически никогда не выполнит запрос.Я не получаю никаких ошибок или исключений, он просто делает это

    xmlhttp.onreadystatechange = statstatechange;
    xmlhttp.open("POST", url, true);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlhttp.send(postdata);

, и моя функция statstatechange никогда не вызывается, и я не вижу запросов на стороне сервера, насколько я могу сказать запросникогда не получится.

Есть идеи, как заставить хром делать это?

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

Для тех, у кого есть такая же проблема в chrome: оказывается, что если у вас есть iframe на странице, вы можете запускать запросы xhr в этом iframe, и они будут продолжать работать даже после отправки главной формы страницы верхнего уровня. , Так что это дурацкий обходной путь, но, по крайней мере, он работает.

0 голосов
/ 09 ноября 2011

попробуйте добавить эти два

xmlhttp.setRequestHeader('Content-length',url.length);
xmlhttp.setRequestHeader('Connection','close');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...