Une erreur 500 est toujours liée au serveur. Les symptômes ne peuvent se produire qu'avec un navigateur spécifique, mais c'est le serveur qui est défaillant; la requête envoyée au serveur provoque l'échec du code côté serveur d'une manière ou d'une autre.
L'erreur 500 en elle-même est trop générique ; sans connaître plus de détails sur l'erreur, il est toujours très difficile de diagnostiquer, et franchement je ne pourrai pas vous donner une réponse définitive ici.
De votre côté, vous devez écarter l'évidence et vérifier les paramètres de votre navigateur dans IE. Plus précisément, tous les paramètres susceptibles de l'empêcher de communiquer correctement avec le serveur. Par exemple, assurez-vous que les cookies sont activés et fonctionnent correctement.
Mais la première chose à faire est de discuter avec le fournisseur ou les développeurs de l'API, car ils auront accès aux journaux d'erreurs du serveur, et ils voudront savoir si leur code génère une erreur 500.
Cependant, si vous souhaitez enquêter de votre côté, le fait qu'il soit spécifique à un navigateur est un indice. Si les autres navigateurs fonctionnent, cela nous indique que ce navigateur (IE11) envoie la requête avec quelque chose de différent des autres navigateurs, et c'est ce quelque chose qui déclenche le code côté serveur pour échouer. Cela nous donne quelque chose avec quoi travailler dans l'enquête.
La première chose à faire est donc d'examiner la requête dans tous les navigateurs. Utilisez les outils de développement F12 dans Chrome, Firefox et IE, et arrivez au point où vous avez passé le même appel dans les trois, et cela fonctionne dans FF et Chrome mais pas dans IE11.
Dans les outils de développement, vous devriez maintenant pouvoir examiner les détails de la demande pour les trois. Comparez-les.
Commencez par examiner les données de la requête, c'est-à-dire la chaîne de requête réelle qui a été envoyée. S'il y a des différences, déterminez si l'une de ces différences peut être responsable de l'erreur. Quelque chose peut ressortir évidemment; par exemple si IE a tronqué une variable ou quelque chose comme ça. Si cela résout le problème, tant mieux.
Si cela ne vous aide pas, alors vous devez regarder plus en détail. Peut-être y a-t-il quelques différences mais elles ne semblent pas devoir casser quoi que ce soit ? Les outils de développement de navigateur modernes vous permettent de modifier et de renvoyer une demande, alors essayez de modifier la demande dans les outils de développement de Chrome ou de Firefox, et faites en sorte que les paramètres soient identiques à ceux d'IE qui ont échoué. Essayez maintenant de renvoyer cette demande. Si vous avez de la chance, cela entraînera l'échec de la requête dans l'autre navigateur, ce qui vous permettra de montrer qu'un ensemble spécifique de données est le problème (plutôt qu'un navigateur spécifique). Vous avez mentionné qu'il s'agit d'une API tierce, vous devrez donc discuter avec le fournisseur de l'API pour savoir pourquoi cette requête casse son API.
Si vous n'avez toujours pas trouvé le problème à ce stade, que vous envoyez des requêtes identiques dans les deux navigateurs et que vous êtes connecté en tant que même utilisateur, l'étape suivante consiste à examiner les en-têtes de requête.
Il y a un en-tête de requête qui sera certainement différent :la chaîne de l'agent utilisateur. Mais il peut y en avoir d'autres aussi. Encore une fois, essayez de renvoyer la demande qui fonctionne dans Chrome, mais avec les en-têtes de la demande défaillante dans IE (y compris la chaîne UA). La requête échoue-t-elle maintenant dans Chrome ? Si c'est le cas, identifiez les en-têtes différents qui le font échouer.
Encore une fois, si cela vous permet de trouver un ensemble spécifique de données de requête et d'en-têtes à l'origine du problème, vous devrez en discuter avec le fournisseur de l'API.
Si tout cela ne vous aide pas, essayez de regarder les cookies. Vous avez déjà vérifié que les cookies fonctionnent, donc cela semble long maintenant, mais encore une fois comparez les cookies entre les navigateurs et voyez s'il y a quelque chose de manifestement différent à leur sujet.
J'espère que ce qui précède est suffisant pour vous aider à diagnostiquer le problème.