Javascript 带有jquery.form.js的ie8和ie9返回html,而不是来自PHP的数据回显

Javascript 带有jquery.form.js的ie8和ie9返回html,而不是来自PHP的数据回显,javascript,php,jquery,html,internet-explorer-8,Javascript,Php,Jquery,Html,Internet Explorer 8,我必须完成的事情是通过选择我的图像文件我不知道ajaxForm的内部工作是如何完成的,但我猜它使用一个iframe来发布数据,并在iframe加载时读取iframe。IE将通过创建“缺失”和元素,强制返回的字符串为HTML。您应该通过将内容类型HTTP头设置为text/plain来告诉IE不要将其解析为HTML: <?php header('Content-Type: text/plain;charset=utf-8'); header('Content-Dispositi

我必须完成的事情是通过
选择我的图像文件我不知道ajaxForm的内部工作是如何完成的,但我猜它使用一个iframe来发布数据,并在iframe加载时读取iframe。IE将通过创建“缺失”和元素,强制返回的字符串为HTML。您应该通过将内容类型HTTP头设置为text/plain来告诉IE不要将其解析为HTML:

<?php
    header('Content-Type: text/plain;charset=utf-8');
    header('Content-Disposition: inline;filename=File.txt');
    echo "Hello World";
?>

==编辑===

不行!看吧

==编辑2===

我在这件事上搞得有点乱,我已经把它做好了

HTML:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UNTITLED</title>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="//malsup.github.io/min/jquery.form.min.js"></script>
<script>
$(function() {
    $("#myForm").ajaxForm(function(data) {
        console.log(data);
        $("#myImg").attr("src", "data:image/png;base64, " + data);
    });
});
</script>
</head>
<body>
<form method="post" action="send.php" id="myForm" enctype="multipart/form-data">
<input name="a" type="file">
<input type="submit" value="Submit">
</form>
<img id="myImg">
</body>
</html>

无标题
$(函数(){
$(“#myForm”).ajaxForm(函数(数据){
控制台日志(数据);
$(“#myImg”).attr(“src”,“数据:image/png;base64,”+数据);
});
});
PHP:

<?php
header('Content-Type: text/html');
echo base64_encode(file_get_contents($_FILES['a']['tmp_name']));

那么您要返回的html是什么?PHP本身永远不会将echo/print输出包装为html。它唯一一次在没有被告知的情况下输出html是针对错误/警告消息。它返回的html与第一页几乎相同,布局相同,正如我在描述中所说的,它似乎是html,好像是要重新加载的页面。嗨,我试过了,它没有在控制台中打印数据,而是显示了一个弹出窗口“您想打开或保存script.php吗?”如果我单击“打开”,它会打开一个文件,其中包含一些警告和转换到base64的图像。是否有方法获取该信息并避免出现弹出窗口?愚蠢的IE…您可以尝试添加
标题('content-Disposition:inline;filename=file.txt')吗
在标题之后?下载不再显示,但数据仍然是html。是的,IE:p。您可以尝试将您的响应完全设置为html。github上的这个问题与此有关:您可以检查我的新示例代码吗?看看是否有效?您需要选择一个不大于4K的png文件。
<?php
    header('Content-Type: text/plain;charset=utf-8');
    header('Content-Disposition: inline;filename=File.txt');
    echo "Hello World";
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UNTITLED</title>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="//malsup.github.io/min/jquery.form.min.js"></script>
<script>
$(function() {
    $("#myForm").ajaxForm(function(data) {
        console.log(data);
        $("#myImg").attr("src", "data:image/png;base64, " + data);
    });
});
</script>
</head>
<body>
<form method="post" action="send.php" id="myForm" enctype="multipart/form-data">
<input name="a" type="file">
<input type="submit" value="Submit">
</form>
<img id="myImg">
</body>
</html>
<?php
header('Content-Type: text/html');
echo base64_encode(file_get_contents($_FILES['a']['tmp_name']));