sql >> データベース >  >> NoSQL >> MongoDB

AngularJsアプリケーションを使用したIE-11のステータス500内部サーバーエラー

    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をもう一度比較し、明らかに異なるものがあるかどうかを確認してください。

    上記が問題の診断に役立つことを願っています。




    1. キー名のMongoDBドット(。)

    2. mongodbカーソルからnode.jsのExpressresponseにストリーミングします

    3. System.TimeoutException:CompositeServerSelectorを使用してサーバーを選択した30000ms後にタイムアウトが発生しました

    4. アップサートの位置($)での$pushが失敗する