Asp classic ASP Classic-如何清除Response.redirect中的重定向头?

Asp classic ASP Classic-如何清除Response.redirect中的重定向头?,asp-classic,redirect,Asp Classic,Redirect,我正在使用ASP页面调用的已编译VB6对象。响应缓冲已打开。我的代码调用另一个已编译的VB组件,该组件可能会调用Response.Redirect(),但会继续执行并将控制返回给我的代码。然后我可能想呼叫Response.redirect我自己。但是,这似乎为标头创建了一个数组,而不是覆盖以前的Url: 代码: 生成的http响应: HTTP/1.1 302 Object moved ... Location: http://google.com,http://yahoo.com ...

我正在使用ASP页面调用的已编译VB6对象。响应缓冲已打开。我的代码调用另一个已编译的VB组件,该组件可能会调用Response.Redirect(),但会继续执行并将控制返回给我的代码。然后我可能想呼叫Response.redirect我自己。但是,这似乎为标头创建了一个数组,而不是覆盖以前的Url:

代码:

生成的http响应:

 HTTP/1.1 302 Object moved
 ...
 Location: http://google.com,http://yahoo.com
 ...
 Date: Wed, 23 Mar 2011 18:14:17 GMT
 Connection: keep-alive

我尝试了Response.Clear,但这似乎不会影响标题。

据我所知
Response.Redirect()
终止页面处理并立即执行重定向。通常,您的代码在之后无法继续处理,因此无法避免重定向

MSDN说:

任何响应正文内容,如 显示的HTML文本或响应。写入 页面中由 原始URL被忽略。但是, 方法不发送其他HTTP头 由该页设置,由 客户端的原始URL。一 自动响应主体包含 生成链接时重定向URL

我认为让代码在以后继续执行的唯一方法是调用已编译的COM组件或其他一些外部进程,因为这不会受到终止的页面执行的影响


如果您提到的VB组件是一个外部组件,而不仅仅是一个包含在
指令中的另一个ASP文件,那么它将继续执行,但您调用的ASP页面不会执行。

您有编译组件的源代码吗


i、 e.是否可以将其重写为,而不是导致重定向本身,只需返回要重定向到的URL?

是的,VB6组件是一个已编译的可执行文件,正如您所说,它在将重定向头放入响应缓冲区后继续执行。似乎没有清除标题的方法:-(
 HTTP/1.1 302 Object moved
 ...
 Location: http://google.com,http://yahoo.com
 ...
 Date: Wed, 23 Mar 2011 18:14:17 GMT
 Connection: keep-alive