类ASP - Response.ContentType与进度条冲突

时间:2013-09-18 20:52:46

标签: asp-classic

我遇到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

1 个答案:

答案 0 :(得分:0)

您必须重写页面脚本,以便在将任何内容(标题或页面内容)发送到客户端之前完成所有处理,然后确保在致电Response.Write或使用{之前发送所有标头{1}}。

像这样:

%>

当然,您的脚本看起来像是将HTML作为CSV文件提供 - 我认为您需要重新考虑您正在做的事情。