500エラーは、常にサーバーに関連しています。症状は特定のブラウザでのみ発生する可能性がありますが、障害が発生しているのはサーバーです。サーバーに送信されているリクエストが原因で、サーバー側のコードが何らかの形で失敗しています。
エラー500自体は一般的すぎます。エラーの詳細を知らなければ、診断するのは常に非常に困難であり、率直に言って、ここで明確な答えを出すことはできません。
最後に、明らかなことを除外し、IEでブラウザの設定を確認する必要があります。具体的には、サーバーとの適切な通信に失敗する可能性のある設定。たとえば、Cookieが有効になっていて、正しく機能していることを確認してください。
ただし、最初にすべきことは、APIのベンダーまたは開発者と話し合うことです。彼らはサーバーのエラーログにアクセスでき、コードが500エラーをスローしているかどうかを知りたがるからです。
ただし、最後に調査したい場合は、それが1つのブラウザーに固有であるという事実が手がかりになります。他のブラウザーが機能している場合、これは、この1つのブラウザー(IE11)が他のブラウザーとは異なる何かを含む要求を送信していること、およびサーバー側のコードをトリガーしていることを示しています。不合格。これにより、調査で使用できるものが得られます。
したがって、最初に行うことは、すべてのブラウザーで要求を調べることです。 Chrome、Firefox、IEでF12開発ツールを使用し、3つすべてで同じ呼び出しを行ったところまで到達します。これは、FFとChromeで機能しますが、IE11では機能しません。
開発ツールで、3つすべてのリクエストの詳細を調べることができるはずです。それらを比較してください。
まず、リクエストデータ、つまり送信された実際のクエリ文字列を確認します。違いがある場合は、これらの違いのいずれかがエラーの原因である可能性があるかどうかを検討してください。何かが明らかに目立つかもしれません。たとえば、IEが変数などを切り捨てた場合。これで問題が解決した場合は、すばらしいです。
それでも問題が解決しない場合は、さらに詳しく調べる必要があります。いくつかの違いがあるかもしれませんが、何かを壊す必要があるようには見えませんか?最新のブラウザ開発ツールを使用すると、リクエストを編集して再送信できるため、ChromeまたはFirefoxの開発ツールでリクエストを編集してみてください。パラメータは、失敗したIEのパラメータと同じにしてください。次に、そのリクエストを再送信してみてください。運が良ければ、これにより他のブラウザでリクエストが失敗し、特定のデータセットが(特定のブラウザではなく)問題であることを示すことができます。これはサードパーティのAPIであるとおっしゃっていたので、APIベンダーと話し合って、そのクエリがAPIを壊す理由を確認する必要があります。
この時点でまだ問題が見つからず、両方のブラウザで同じクエリを送信していて、同じユーザーとしてログインしている場合、次のステップはリクエストヘッダーを確認することです。
>間違いなく異なるリクエストヘッダーが1つあります。それは、ユーザーエージェント文字列です。しかし、他にもあるかもしれません。繰り返しになりますが、Chromeで機能するリクエストを再送信してみてください。ただし、IEで失敗したリクエストのヘッダー(UA文字列を含む)を使用してください。 Chromeでリクエストが失敗するようになりましたか?その場合は、失敗する原因となるヘッダーを絞り込みます。
繰り返しになりますが、これにより、問題の原因となる特定のリクエストデータとヘッダーのセットを見つけることができる場合は、APIベンダーと話し合う必要があります。
これらすべてが役に立たない場合は、Cookieを確認してみてください。すでにCookieが機能していることを確認したので、これは今では長い道のりのようですが、ブラウザ間でCookieをもう一度比較し、明らかに異なるものがあるかどうかを確認してください。
上記が問題の診断に役立つことを願っています。