sql >> Databáze >  >> NoSQL >> MongoDB

Stav 500 Interní chyba serveru v IE-11 s aplikací Angular Js

Chyba 500 vždy souvisí se serverem. Příznaky se mohou objevit pouze u konkrétního prohlížeče, ale je to server, který selhává; požadavek, který je odesílán na server, způsobuje nějakým způsobem selhání kódu na straně serveru.

Chyba 500 je sama o sobě příliš obecná; bez znalosti dalších podrobností o chybě je vždy velmi těžké ji diagnostikovat a upřímně řečeno vám zde nebudu moci dát definitivní odpověď.

Nakonec byste měli vyloučit zjevné věci a zkontrolovat nastavení prohlížeče v IE. Konkrétně všechna nastavení, která by mohla způsobit, že nebude správně komunikovat se serverem. Ujistěte se například, že jsou povoleny soubory cookie a zda správně fungují.

Ale první věc, kterou byste měli udělat, je diskutovat s dodavatelem nebo vývojáři API, protože budou mít přístup k protokolům chyb serveru a budou o tom chtít vědět, pokud jejich kód vyvolá chybu 500.

Pokud však chcete prozkoumat na svém konci, skutečnost, že je to specifické pro jeden prohlížeč, je vodítkem. Pokud ostatní prohlížeče fungují, pak nám to říká, že tento jeden prohlížeč (IE11) odesílá požadavek s něčím, co se liší od ostatních prohlížečů, a je to něco, co spouští kód na straně serveru selhat. Díky tomu můžeme při vyšetřování pracovat.

První věc, kterou musíte udělat, je prozkoumat požadavek ve všech prohlížečích. Použijte vývojářské nástroje F12 v Chrome, Firefoxu a IE a dostaňte se do bodu, kdy jste provedli stejný hovor ve všech třech z nich a fungovalo to v FF a Chrome, ale ne v IE11.

V nástrojích pro vývojáře byste nyní měli být schopni prozkoumat podrobnosti požadavku pro všechny tři. Porovnejte je.

Začněte tím, že se podíváte na data požadavku – tj. skutečný řetězec dotazu, který byl odeslán. Pokud existují rozdíly, zvažte, zda za chybu nemůže některý z těchto rozdílů. Něco může zjevně vyčnívat; např. pokud IE zkrátil proměnnou nebo něco podobného. Pokud to problém vyřeší, pak skvělé.

Pokud to nepomůže, musíte se podívat podrobněji. Možná existují nějaké rozdíly, ale nevypadají, že by měly něco rozbít? Moderní nástroje pro vývoj prohlížeče umožňují upravit a znovu odeslat požadavek, takže zkuste požadavek upravit ve vývojářských nástrojích Chrome nebo Firefoxu a nastavte parametry stejné jako ty z IE, které selhaly. Nyní zkuste žádost odeslat znovu. Pokud budete mít štěstí, způsobí to selhání požadavku v druhém prohlížeči, což vám umožní ukázat, že problémem je konkrétní sada dat (spíše než konkrétní prohlížeč). Zmínil jste, že se jedná o API třetí strany, takže budete muset diskutovat s dodavatelem API, abyste zjistili, proč tento dotaz porušuje jejich API.

Pokud jste v tuto chvíli stále nenašli problém a odesíláte identické dotazy v obou prohlížečích a jste přihlášeni jako stejný uživatel, dalším krokem je podívat se na záhlaví požadavků.

Existuje jedna hlavička požadavku, která se bude určitě lišit:řetězec User Agent. Ale mohou být i další. Znovu zkuste znovu odeslat požadavek, který funguje v Chrome, ale s hlavičkami z neúspěšného požadavku v IE (včetně řetězce UA). Selže nyní požadavek v Chrome? Pokud ano, zúžte, která záhlaví se liší, kvůli čemuž selhává.

Opět, pokud vám to umožní najít konkrétní sadu dat požadavků a hlaviček, které způsobují problém, budete to muset projednat s dodavatelem API.

Pokud toto vše nepomůže, zkuste se podívat na sušenky. Už jste zkontrolovali, že soubory cookie fungují, takže to nyní vypadá jako běh na dlouhou trať, ale znovu porovnejte soubory cookie mezi prohlížeči a zjistěte, zda se na nich něco zjevně liší.

Doufám, že výše uvedené vám postačí k diagnostice problému.




  1. Import dat do instance MongoDB

  2. Chci načíst hodnoty vložené k určitému datu pomocí _id mongodb

  3. Jak vytvořit rekurzivní strukturu pomocí MongoDB

  4. Serializace a deserializace Redis