我遇到Response.ContentType与Progress Bar冲突的问题。基本上,我试图在将记录集保存为CSV文件时显示弹出进度条。
我在下面用两行来调用进度条并将其关闭在页面底部,因此它可以与常规页面一起使用(Response.AddHeader" Content-Disposition",&#34 ; attachment; filename = export.csv")
response.write("<script language=""javascript"">ProgressStart();</script>")
Response.Write("<script>ProgressDestroy()</script>")
我在下面收到此错误,我知道它与Response.ContactType相矛盾&#34; text / csv&#34;。
Response object error 'ASP 0156 : 80004005'
Header Error
/Apps/ERP/Company/ExportCompanyView.asp, line 253
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
有没有办法通过或欺骗它,所以我不会与&#34; Response.ContentType =&#34; text / csv&#34;&#34;?
提前致谢,
此代码是所有过程发生的地方:
If SOViewSQL <> "" Then
set rs1 = conn.execute(SOViewSQL)
response.write("<script language=""javascript"">ProgressStart();</script>")
response.flush()
Write_CSV_From_Recordset RS1
Response.ContentType = "text/csv"
Response.AddHeader "Content-Disposition", "attachment;filename=export.csv"
Response.Write("<script>ProgressDestroy()</script>")
'response.flush()
set rs1 = nothing
conn.close
set conn = nothing
End If
答案 0 :(得分:0)
您必须重写页面脚本,以便在将任何内容(标题或页面内容)发送到客户端之前完成所有处理,然后确保在致电Response.Write
或使用{之前发送所有标头{1}}。
像这样:
%>
当然,您的脚本看起来像是将HTML作为CSV文件提供 - 我认为您需要重新考虑您正在做的事情。