发送到Chrome浏览器的XML数据不会触发文件保存对话框

时间:2013-08-28 22:37:54

标签: c# .net xml google-chrome download

在我们的代码中,有一个选项可以将元数据导出为XML文件。执行此操作的代码如下:

string xml = ToXML(metadatas, files);

context.Response.AddHeader("Content-Type", "application/octet-stream");
context.Response.AddHeader("Content-Disposition", "attachment; filename=video_metadata.xml;");
context.Response.Write(xml);
context.Response.Flush();
context.Response.End();

这在Firefox中运行得很好。他们单击按钮并提示您保存xml文件。但是,在Chrome中,没有保存文件提示。使用fiddler,我可以看到响应中的xml数据全部存在,并且状态代码为200.我的Web服务器上没有显示错误,客户端也没有显示错误迹象。它只是无法将发回的数据识别为保存到文件中的内容。

非常感谢任何帮助。在同一个Web服务器上,我们能够成功导出带有标头的csv文件:

context.Response.AddHeader("Content-Type", "application/vnd.ms-excel");
context.Response.AddHeader("Content-Disposition", "attachment; filename=AssetList.csv;");

修改:我同时尝试了text/xmlapplication/xml,但不幸的是都没有解决我的问题。

1 个答案:

答案 0 :(得分:0)

我肯定会将您的内容类型更改为“text / xml”。使用“application / octet-stream”,您指定了一个二进制文件..我猜这在技术上是正确的。所有文件都是二进制文件,但在您的情况下..您可能需要“text / xml”。