Firefox показывает ожидающий курсор и «загрузка ..» даже после того, как почтовый запрос завершен

У меня есть форма для загрузки файла. <html>Это выглядит так:

<div id="divModalPopup" class="ui-dialog-content" style="height: 139px; width: 268px;">
  <form method="post" action="upload.php" target="uploadframe" enctype="multipart/form-data">
    Please choose a file to upload [only zip with shape files and no folders]: 
    <input type="file" name="uploadFile"/><br/><input type="submit" value="Upload"/>      
  </form>
  <iframe style="display: none;" onload="uploadStatus();" id="uploadframe" name="uploadframe"/>
</div>

И при нажатии на загрузку я отправляю запрос на отправку в php-файл, ответ которого показан в iframe. Функция javascript для этого же:

function uploadStatus(){

   var resp = document.getElementById('uploadframe').contentDocument.body.innerHTML;

   if ("" != resp){

      jQuery("#divModalPopup").html(resp);

   }

}

Проблема, с которой я столкнулся, заключается в том, что даже после получения ответа (firebug показывает правильный ответ) <firefox>отображается значок ожидающего курсора и загрузка .. на вкладке.

Любая идея о том, почему это происходит?

В php-файле нет ничего, кроме выражения echo.

Кроме того, этого не происходит в других браузерах, таких как Chrome и Safari. Захват пакета tcp показывает, что транзакция завершена.

php,javascript,jquery,html,firefox,

2

Ответов: 7


1

Это может быть ошибка, связанная с firefox, поскольку ни один из других браузеров не демонстрирует ее? Захват пакета tcp и вкладка «net» в firebug должны подтвердить, что ответ был полностью отправлен скриптом php.


1

Поместите что-нибудь в свой ответ. Если в вашем php-файле имеется только оператор echo, ответ будет пуст, и у Firefox, как известно, возникнут проблемы с пустым ответом ajax.

Попробуйте это в своем php:

<?php
echo("something");
header("Content-type: text/html");
?>

1

Обычно это происходит, когда нет заголовка длины контента (или заголовки присутствуют, но с неправильным размером)

Вы должны посмотреть на заголовки. Если заголовка нет, вам придется немного поиграть с .htaccess

Кроме того, убедитесь, что у вас нет какого-либо странного символа после тега закрытия php "?>"


1

У меня была аналогичная проблема, и я нашел эту статью, которая оказалась полезной.

В основном проблема возникает при удалении iframe из DOM внутри обработчика onload.


1

Если в Firefox установлен плагин firebug, вы можете увидеть все HTTP-запросы вживую. Итак, откройте firebug, откройте вкладку «net» и перезагрузите страницу. Вы сможете увидеть, какие вызовы POST / GET вызывают и, надеюсь, смогут решить проблему с этим.

PHP, JavaScript, JQuery, HTML, светлячок,
Похожие вопросы