En 500 fejl er altid relateret til serveren. Symptomerne kan kun forekomme med en bestemt browser, men det er serveren, der fejler; anmodningen, der sendes til serveren, forårsager, at serversiden mislykkes på en eller anden måde.
Fejl 500 i sig selv er for generisk; uden at vide flere detaljer om fejlen, er det altid meget svært at diagnosticere, og ærligt talt vil jeg ikke være i stand til at give dig et endeligt svar her.
Til sidst bør du udelukke det åbenlyse og tjekke dine browserindstillinger i IE. Specifikt alle indstillinger, der kan forårsage, at den ikke kommunikerer korrekt med serveren. Sørg for for eksempel, at cookies er aktiveret og fungerer korrekt.
Men den første ting, du skal gøre, er at diskutere med leverandøren eller udviklerne af API'en, fordi de vil have adgang til serverfejlloggene, og de vil gerne vide om det, hvis deres kode kaster en 500-fejl.
Men hvis du ønsker at undersøge det i din ende, er det faktum, at det er specifikt for en browser, et fingerpeg. Hvis de andre browsere virker, så er det, dette fortæller os, at denne ene browser (IE11) sender anmodningen med noget om sig, der er anderledes end de andre browsere, og det er det, der udløser koden på serversiden til svigte. Det giver os noget at arbejde med i efterforskningen.
Så den første ting at gøre er at undersøge anmodningen i alle browsere. Brug F12-udviklerværktøjerne i Chrome, Firefox og IE, og kom til det punkt, hvor du har foretaget det samme opkald i dem alle tre, og det virker i FF og Chrome, men ikke i IE11.
I dev-værktøjerne skulle du nu være i stand til at undersøge anmodningsdetaljerne for alle tre. Sammenlign dem.
Start med at se på anmodningsdataene -- dvs. den faktiske forespørgselsstreng, der blev sendt. Hvis der er forskelle, skal du overveje, om nogen af disse forskelle kan være ansvarlige for fejlen. Noget kan tydeligvis skille sig ud; fx hvis IE har trunkeret en variabel eller sådan noget. Hvis dette løser problemet, så fantastisk.
Hvis det ikke hjælper, så skal du kigge nærmere. Måske er der nogle forskelle, men de ser ikke ud til at skulle bryde noget? Moderne browserudviklingsværktøjer giver dig mulighed for at redigere og gensende en anmodning, så prøv at redigere anmodningen i Chrome eller Firefox's udviklerværktøjer, og gør parametrene de samme som dem fra IE, der mislykkedes. Prøv nu at sende anmodningen igen. Hvis du er heldig, vil dette medføre, at anmodningen mislykkes i den anden browser, hvilket giver dig mulighed for at vise, at et bestemt sæt data er problemet (i stedet for en bestemt browser). Du nævnte, at det er en tredjeparts API, så du bliver nødt til at diskutere med API-leverandøren for at finde ud af, hvorfor den forespørgsel bryder deres API.
Hvis du stadig ikke har fundet problemet på dette tidspunkt, og du sender identiske forespørgsler i begge browsere, og du er logget ind som den samme bruger, så er næste trin at se på anmodningsoverskrifterne.
Der er én anmodningsoverskrift, der helt sikkert vil være anderledes:User Agent-strengen. Men der kan også være andre. Prøv igen at sende en anmodning igen, der virker i Chrome, men med overskrifter fra den mislykkede anmodning i IE (inklusive UA-strengen). Mislykkes anmodningen nu i Chrome? Hvis det er tilfældet, skal du indsnævre hvilke overskrifter, der er forskellige, der får det til at mislykkes.
Igen, hvis dette giver dig mulighed for at finde et specifikt sæt anmodningsdata og headers, der forårsager problemet, skal du diskutere med API-leverandøren.
Hvis alt dette ikke hjælper, så prøv at se på cookies. Du har allerede tjekket, at cookies virker, så det virker som et langt skud nu, men sammenlign igen cookies mellem browsere og se, om der er noget åbenlyst anderledes ved dem.
Jeg håber, at ovenstående er nok til at hjælpe dig med at diagnosticere problemet.