2009-09-24 20 views
16

Pracuję z ASP.NET MVC i jQuery i mam UserControl, który jest powtarzany na każdej stronie. W każdym żądaniu strony występuje wywołanie zwrotne AJAX. Jak na razie dobrze.Jaki jest kod błędu 302, który rzuca jQuery AJAX?

Ale kiedy jestem w localhost i publikuję stronę, zauważam, że ta AJAX rzuca błąd 302. Dzieje się tak tylko na stronach https i tylko w FF i Chrome. Na IE żądanie AJAX działa dobrze.

Co to jest błąd 302? Dlaczego pojawia się tylko na stronach https i tylko w FF i Chrome?

+0

Czy masz na uwierzytelnianie NTLM i jest to strona intranet, lub jeden IE przechodzi poświadczeń i innych nie będzie domyślnie? –

Odpowiedz

14

HTTP 302 służy do przekierowania. Domyślam się, że jest jakiś błąd serwera i jesteś przekierowywany na stronę błędu za pomocą 302. Sprawdź dzienniki serwera pod kątem błędów.

+2

Może się to zdarzyć po pomyślnym zalogowaniu, gdy serwer zdecyduje się przekierować na stronę postlogin. – mvladk

+0

OAuth przekierowuje użytkowników z 302 do serwera autoryzacji, gdy próbują pobrać zasób, który wymaga uwierzytelnienia. Kiedy to przekierowanie jest obsługiwane przez przeglądarkę, dzieje się dużo (użytkownik wprowadzający dane uwierzytelniające, wykonywany JavaScript, itp.), A ostatecznym rezultatem jest zwykle to, że dostęp do pierwotnie pożądanego zasobu jest możliwy. AJAX nie robi żadnej z tych rzeczy, a ty po prostu zostajesz z 302. –

1

Czy serwer, do którego masz dostęp, ma funkcję Przekierowania strony? i że strona, do której uzyskujesz dostęp przez Ajax, została przekierowana na inną stronę? W takim przypadku należy wyłączyć przekierowanie (przynajmniej zignorować przekierowanie dla tej strony), a następnie spróbować. PS: Myślę, że Ajax może nie obsługiwać przekierowania adresu URL.