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