我有一个表单来上传文件。 <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数据包捕获显示事务已完成。
答案 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之后尝试......只是为了消除一种可能性。