即使在帖子请求完成后,Firefox也会显示等待光标并“加载...”

时间:2009-06-16 07:11:45

标签: php javascript jquery html 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数据包捕获显示事务已完成。

7 个答案:

答案 0 :(得分:1)

可能是firefox特定的bug,因为没有其他浏览器能够展示它吗? firebug中的tcp数据包捕获和“net”选项卡应该确认响应是由php脚本完全发回的。

答案 1 :(得分:1)

在回复中添加一些内容。如果你的php文件中只有一个echo语句,那么响应是空的,并且知道Firefox有空的ajax响应。

在你的php中试试这个:

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

答案 2 :(得分:1)

当没有内容长度标题(或标题存在但大小不正确)时,通常会发生这种情况。

你应该看一下标题。如果标题不在那里,你将不得不用.htaccess

玩一点

另外,请确保在php结束标记“?&gt;”

之后没有任何奇怪的字符

答案 3 :(得分:1)

我遇到了类似的问题,我发现这个article证明是有帮助的。

基本上,当从onload处理程序中的DOM中删除iframe时会引起问题。

答案 4 :(得分:1)

如果你在Firefox中安装了firebug插件,那么你可以看到所有的http请求。 所以打开firebug,打开“net”选项卡并重新加载页面。 您将能够看到正在调用的POST / GET请求,并希望能够解决该问题。

答案 5 :(得分:1)

添加';返回false;'在你的javascript电话之后。

<iframe style="display: none;" onload="uploadStatus();return false;" id="uploadframe" name="uploadframe"/>

答案 6 :(得分:-1)

在禁用firebug之后尝试......只是为了消除一种可能性。