Asp classic IE中的下载问题

Asp classic IE中的下载问题,asp-classic,download,cross-browser,Asp Classic,Download,Cross Browser,我用的是经典的asp和vb脚本。 下载excel文件的代码为: Response.ContentType = "application/vnd.ms-excel" Response.AddHeader "Content-Disposition", "attachment;filename=ExportedData.xls" Response.Write "<table><tr><td>1</td></tr></table>"

我用的是经典的asp和vb脚本。 下载excel文件的代码为:

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment;filename=ExportedData.xls"
Response.Write "<table><tr><td>1</td></tr></table>"
Response.ContentType=“应用程序/vnd.ms excel”
Response.AddHeader“内容处置”、“附件;文件名=ExportedData.xls”
回答:写“1”
然后,它可以很好地与firefox或任何其他下载程序(如orbit down loader)配合使用。 但是我在IE 6.0/7.0/8.0中遇到了错误

信息是:

Internet Explorer无法下载 来自secure.siteurl.com的myasppage.asp

Internet Explorer无法打开 这个网站。请求的站点 不可用或无法访问 建立请稍后再试

那么问题是什么呢

供参考: 我将查询字符串参数ysnDownload=1传递给myasppage.asp页面。 &如果它被传递,然后只有它将具有ContentType作为应用程序,否则它将具有默认类型(text/html)。

如果您使用SSL(secure.siteurl.com使用SSL,对吗?),则Internet Explorer对临时文件有点挑剔

在这种情况下,我通常发送的标题是:

Cache-Control: public, must-revalidate
Pragma: hack

我想线索可能在“secure.siteurl.com”中。我猜你是通过https发送的

在这种情况下,IE处理此类下载的方式可能会与“bug”相冲突。它将这些文档下载到缓存中,然后从那里传输或打开它们。但是,当内容通过https下载且未指定缓存或明确声明不应从缓存提供项目时,文档不会保存在缓存中。这可能会破坏下载保存或打开mechinism

尝试设置响应对象的Expires和CacheControl属性,以允许非常短的缓存窗口。例如:-

Response.Expires = 1
Response.CacheControl = "private; max-age=10"

您是否
clear
ing和
end
ing

Response.Clear
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment;filename=ExportedData.xls"
Response.Write "<table><tr><td>1</td></tr></table>"
Response.End
Response.Clear
Response.ContentType=“应用程序/vnd.ms excel”
Response.AddHeader“内容处置”、“附件;文件名=ExportedData.xls”
回答:写“1”
答复.完

这行代码应该适合您,只需在导出文件之前清除标题即可。
response.ClearHeaders()

是的,我正在使用https协议。我试过了,但没有成功。我有大麻烦了!!若我使用http,那个么它可以工作,但若我使用https,那个么它就会产生问题,正如你们所说的那个样。但为什么呢?有没有解决问题的办法?正如我在答覆中所说;试试pragma:hackI也遇到了这个IE bug,结果只是通过http发送,因为我找不到解决方法(当然是在客户允许的情况下)@Vikas:我在回答中已经描述了为什么会出现这个问题,我还提供了一个解决方案。你确定这些额外的头会覆盖任何其他预设值吗?在我的例子中,我确保没有发送任何标题。按照与此相同的思路,我成功地完成了以下操作:Response.AddHeader“pragma”,“no store,no cache,must revalidate”尝试:Response.AddHeader“pragma”,“no store,no cache,must revalidate”,但不起作用