使用JavaScript将PHP中的可下载文件返回到Internet Explorer

使用JavaScript将PHP中的可下载文件返回到Internet Explorer,javascript,php,internet-explorer,download,Javascript,Php,Internet Explorer,Download,我有一个PHP web应用程序,用户可以在其中单击按钮下载动态生成的XML文件。它已经运行了很长一段时间,但突然我从一个IE用户那里收到了bug报告(我只有一个显示bug的屏幕截图)。我需要你的帮助来找出可能的原因 首先,web GUI中的按钮点击由jQuery处理,jQuery有一个JavaScript窗口。location语句: $("#generate-button").click(function() { ... window.location = "generateXm

我有一个PHP web应用程序,用户可以在其中单击按钮下载动态生成的XML文件。它已经运行了很长一段时间,但突然我从一个IE用户那里收到了bug报告(我只有一个显示bug的屏幕截图)。我需要你的帮助来找出可能的原因

首先,web GUI中的按钮点击由jQuery处理,jQuery有一个JavaScript
窗口。location
语句:

$("#generate-button").click(function() {
    ...
    window.location = "generateXml.phtml";
}
generateXml.phtml
是创建XML字符串的PHP,返回:

header('Content-Type: application/xml');
header('Content-Disposition: attachment; filename=xmlFile.xml');
echo $xmlString;
到目前为止,用户总是被提示是否打开或保存
xmlFile.xml
(这是正确的)。但是,现在,Internet Explorer的用户(版本未知,但似乎是IE10)会被提示是否打开或保存
generateXml\u phtml

请注意,IE已将
(点)替换为
(下划线)。似乎
generateXml.phtml
中的PHP服务器代码甚至没有执行


你有什么想法吗?我无法在自己的系统上使用IE复制该错误。

您能给出该问题的直接链接吗?尝试将扩展名更改为.php如果文件未被处理,则会很奇怪web服务器应该只提供执行的代码而不是原始代码,可能是.phtml扩展名有问题…

不幸的是,GUI需要身份验证,因此我无法提供链接。我同意更改文件扩展名是值得一试的。如果您将其更改为.php,我敢打赌它不会为您提供原始代码,而只提供经过处理的代码。不过,我无法理解为什么这只会影响一个Internet Explorer客户端。(我需要一段时间才能要求客户端再次测试。)刚刚被告知,尽管扩展名已更改,但客户端的错误仍然存在。用户无法保存您的文件?如果他保存它,它是空的吗?