2011-03-25 48 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

相關問題