Перенаправление asp.net в Firefox не работает - PullRequest
3 голосов
/ 01 июня 2009

В моем веб-приложении .net 3.5 я перенаправляю пользователей на другую страницу, используя response.redirect.

Это работает во всех браузерах, т.е. не в браузерах Firefox. я понятия не имею, почему?

Response.Redirect("~/"+ GlobalConsts.ARTICLE_ANALYSER_URL +"?"+ GlobalConsts.QUERYSTRING_KEY_ONE + 
            SessionHandler.RedirectToArticleID + GlobalConsts.QUERYSTRING_KEY_TWO + 
            SessionHandler.RedirectToArticleParentOrChild);

Ответы [ 7 ]

6 голосов
/ 01 июня 2009

Попробуйте установить это расширение Firefox и записать заголовки, отправленные клиенту:

https://addons.mozilla.org/en-US/firefox/addon/3829

Заголовки могут дать вам больше понимания того, что происходит не так.

3 голосов
/ 21 сентября 2011

Всегда проверяйте сначала с помощью fiddler .

Мне нравится предложение, сделанное на форуме, на который вы ссылались, о том, что это не ошибка перенаправлений, а проблема с кешем браузера. Попробуйте установить заголовок expires.

Если вышеизложенное не помогает, поделитесь своими результатами с fiddler.

1 голос
/ 27 сентября 2011

Обновлено

Вместо использования Response.Redirect просто вручную выполните перенаправление:

Response.Clear();
Response.Status = "302 Found";
Response.StatusCode = 302;
Response.AddHeader("Location", url);
Context.ApplicationInstance.CompleteRequest();

Старый пост

Это может быть проблема с кэшированием, согласно этой статье http://www.mrclay.org/2011/07/03/firefox-5-shibboleth-issues/

И вам может понадобиться удалить все кэширующие заголовки, которые вы отправляете в ответе. Поэтому установите заголовки кэша не кэшировать, а затем перенаправить ответ:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Redirect("~/"+ GlobalConsts.ARTICLE_ANALYSER_URL +"?"+ GlobalConsts.QUERYSTRING_KEY_ONE + 
            SessionHandler.RedirectToArticleID + GlobalConsts.QUERYSTRING_KEY_TWO + 
            SessionHandler.RedirectToArticleParentOrChild);
0 голосов
/ 22 июня 2014

попробуйте это: Response.RedirectPermanent (url, true);

0 голосов
/ 25 сентября 2011

Попробуйте этот кусок:

Response.Redirect("~/"+ GlobalConsts.ARTICLE_ANALYSER_URL +"?"+ GlobalConsts.QUERYSTRING_KEY_ONE + 
            SessionHandler.RedirectToArticleID + GlobalConsts.QUERYSTRING_KEY_TWO + 
            SessionHandler.RedirectToArticleParentOrChild,false);
0 голосов
/ 22 сентября 2011

вы можете создать функцию javascript и вызывать ее, когда необходимо выполнить перенаправление,

//javascript
function RedirectJS(url){
    window.location.href=url;
}

в коде позади изменить атрибут onclick кнопки

//C#
protected void Page_Load(object sender, EventArgs e)
{
     if(!IsPostBack)
     {
          Button1.OnClientClick = "RedirectJS('"+HttpContext.Current.Request.ApplicationPath+"/"+GlobalConsts.ARTICLE_ANALYSER_URL +"?"+ GlobalConsts.QUERYSTRING_KEY_ONE + SessionHandler.RedirectToArticleID + GlobalConsts.QUERYSTRING_KEY_TWO + SessionHandler.RedirectToArticleParentOrChild+"');";
     }
}
0 голосов
/ 01 июня 2009

В Firefox проверьте about: config setting network.http.redirection-limit (который должен быть больше 1).

Быстрый совет для устранения неполадок общего развития с FireFox: получите расширение Firebug .

...