代码之家  ›  专栏  ›  技术社区  ›  Amit

Response.Redirect()不会在Internet Explorer上重定向

  •  0
  • Amit  · 技术社区  · 14 年前

    Response.Redirect("someurl",true);
    

    在page\u preInit事件中重定向所有到达某个页面的请求。它在Firexox上运行良好,但是如果我从internetexplorer7/8访问该页面,它会说找不到该页面,并且不会重定向到新的URL。

    知道为什么会这样吗??

    更新:

    我试着在重定向中提供一个radom URL,比如google.com,效果很好。实际上,我尝试重定向的URL在我的计算机上不可访问,它在另一个VPN上。我猜IE不会改变地址栏上的网址,如果它不能访问该网址。另一方面,Firefox会更改地址栏上的地址。

    3 回复  |  直到 14 年前
        1
  •  0
  •   Ross Hawkins    14 年前

    您的Response.Redirect是否包含在try/catch块中?这可能会导致重定向问题。

        2
  •  0
  •   Amit    14 年前

    正如我在更新中提到的,如果IE返回404,它不会更改URL。因为我无法访问我正在重定向的URL,它返回的是404。但是firefox的行为不同。

        3
  •  0
  •   Robert Barrueco    10 年前

    旧代码:

     HttpContext.Current.Response.Redirect("www.mysite.com", true);
    

    新代码:

     WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Redirect;
     WebOperationContext.Current.OutgoingResponse.Headers.Add("Location", "www.mysite.com");