Błąd 500 jest zawsze związany z serwerem. Symptomy mogą wystąpić tylko w określonej przeglądarce, ale to serwer ulega awarii; żądanie wysyłane do serwera powoduje w jakiś sposób niepowodzenie kodu po stronie serwera.
Sam błąd 500 jest zbyt ogólny; nie znając więcej szczegółów na temat błędu, zawsze jest on bardzo trudny do zdiagnozowania i szczerze mówiąc, nie będę w stanie udzielić tutaj ostatecznej odpowiedzi.
Na koniec powinieneś wykluczyć oczywiste i sprawdzić ustawienia przeglądarki w IE. W szczególności wszelkie ustawienia, które mogą spowodować niepoprawną komunikację z serwerem. Na przykład upewnij się, że pliki cookie są włączone i działają poprawnie.
Ale pierwszą rzeczą, którą powinieneś zrobić, to porozmawiać z dostawcą lub programistami API, ponieważ będą oni mieli dostęp do dzienników błędów serwera i będą chcieli o tym wiedzieć, jeśli ich kod zgłasza błąd 500.
Jeśli jednak chcesz to zbadać na swoim końcu, fakt, że jest on specyficzny dla jednej przeglądarki, jest wskazówką. Jeśli inne przeglądarki działają, to mówi nam to, że ta jedna przeglądarka (IE11) wysyła żądanie z czymś innym niż inne przeglądarki i jest to coś, co wyzwala kod po stronie serwera do ponieść porażkę. To daje nam coś do pracy w dochodzeniu.
Więc pierwszą rzeczą do zrobienia jest sprawdzenie żądania we wszystkich przeglądarkach. Użyj narzędzi programistycznych F12 w Chrome, Firefox i IE i przejdź do punktu, w którym wykonałeś to samo wywołanie we wszystkich trzech z nich i działa to w FF i Chrome, ale nie w IE11.
W narzędziach deweloperskich powinieneś być teraz w stanie sprawdzić szczegóły żądania dla wszystkich trzech. Porównaj je.
Zacznij od spojrzenia na dane żądania – tj. rzeczywisty ciąg zapytania, który został wysłany. Jeśli istnieją różnice, zastanów się, czy którakolwiek z tych różnic może być przyczyną błędu. Coś może się oczywiście wyróżniać; np. jeśli IE obcięło zmienną lub coś w tym stylu. Jeśli to rozwiąże problem, to świetnie.
Jeśli to nie pomoże, musisz przyjrzeć się bardziej szczegółowo. Może są jakieś różnice, ale nie wyglądają na to, żeby coś zepsuć? Nowoczesne narzędzia programistyczne przeglądarki umożliwiają edycję i ponowne wysyłanie żądania, więc spróbuj edytować żądanie w narzędziach programistycznych Chrome lub Firefox i ustaw parametry takie same, jak te z IE, które się nie powiodły. Teraz spróbuj ponownie wysłać tę prośbę. Jeśli masz szczęście, spowoduje to niepowodzenie żądania w innej przeglądarce, co pozwoli Ci pokazać, że problemem jest określony zestaw danych (a nie konkretna przeglądarka). Wspomniałeś, że jest to interfejs API innej firmy, więc będziesz musiał porozmawiać z dostawcą interfejsu API, aby dowiedzieć się, dlaczego to zapytanie łamie ich interfejs API.
Jeśli nadal nie znalazłeś problemu i wysyłasz identyczne zapytania w obu przeglądarkach i jesteś zalogowany jako ten sam użytkownik, następnym krokiem jest sprawdzenie nagłówków żądań.
Istnieje jeden nagłówek żądania, który na pewno będzie inny:ciąg agenta użytkownika. Ale mogą być też inni. Ponownie spróbuj ponownie wysłać żądanie, które działa w Chrome, ale z nagłówkami z nieudanego żądania w IE (w tym ciągiem UA). Czy żądanie teraz kończy się niepowodzeniem w Chrome? Jeśli tak, określ, które nagłówki są różne, które powodują niepowodzenie.
Ponownie, jeśli pozwoli to na znalezienie określonego zestawu danych i nagłówków żądań, które powodują problem, musisz omówić to z dostawcą interfejsu API.
Jeśli to wszystko nie pomoże, spróbuj spojrzeć na pliki cookie. Sprawdziłeś już, czy pliki cookie działają, więc teraz wydaje się, że to długa droga, ale ponownie porównaj pliki cookie między przeglądarkami i sprawdź, czy jest w nich coś wyraźnie innego.
Mam nadzieję, że powyższe informacje pomogą Ci zdiagnozować problem.