2011-03-25 76 views
1

我有一个response.redirect(url)都到另一个站点。
在这个失败的情况下,我应该怎么又重定向到一个重定向失败页?重定向到一个页面,如果失败的Response.Redirect

  1. 该请求正从aspx页面后面的代码发送。
  2. 我在代替httpmodule。它可以被使用吗?
+1

最初的重定向到一个完全不同的网站,或只是在您的应用程序的另一个页面? – 2011-03-25 20:55:00

+0

不同的网站 – confuzzled 2011-03-25 20:58:02

回答

6

response.redirect(url)告诉浏览器请求“url”,所以你不能控制这个url调用在浏览器中是否失败。

你可以做的就是做一个HTTP GET HEAD到那个URL首先看看你是否得到http 200响应然后做一个response.redirect(url)。

+0

同意。如果新页面位于OP控制之外的其他服务器上,那么唯一的方法是首先测试该服务器是否可用,然后决定是否重定向 – NotMe 2011-03-25 20:56:54

+0

谢谢!我应该可以使用它来使它工作。 – confuzzled 2011-03-25 20:58:52

+1

鸡蛋里挑骨头:而不是执行一个HTTP GET,而不是考虑执行HTTP头,并保存自己的一些带宽 - http://stackoverflow.com/questions/830435/how-to-check-if-a-file-exists-on- a-server-using-c-and-the-webclient-class – 48klocs 2011-03-25 21:03:06

1

这没有多大意义 - 如果重定向失败,如何将服务器有史以来发现的?

重定向告诉浏览器去到不同的网页 - 如果失败,失败的浏览器和服务器没有办法知道。

+0

不完全正确。你可以抓住它并重新定向。我认为问题在于如何告诉它在没有“响应”的情况下重定向,因为对象为空。 – trgraglia 2011-05-17 12:04:37

相关问题