2014-04-28 25 views
6

Ich versuche, eine "fileExists" -Funktion in Javascript zu schreiben, die einfach eine Anfrage an den Server sendet und false zurückgibt, wenn ein 404-Status zurückgesendet wird.Konsolenfehler mit XMLHttpRequest unterdrücken

Die Funktion funktioniert einwandfrei, aber ich kann nicht scheinen, die Fehlermeldung zu unterdrücken, die ich in der Google Chrome-Konsole erhalte, die besagt: GET /something/foobar 404 (Not Found).

Kennt jemand eine Möglichkeit, um dies zu umgehen?

als Referenz, hier ist der Code Ich verwende:

var fileExists = function(url) { 
     var req = new XMLHttpRequest(); 
     req.open('GET', url, false); 
     req.send(); 
     return req.status === 200; 
    }; 

Vielen Dank im Voraus!

Antwort

5

Ich glaube nicht, dass es eine Möglichkeit gibt zu verhindern, dass die Konsole angibt, dass das Laden einer Ressource fehlgeschlagen ist. Daran ist eigentlich nichts falsch.

Sie könnten jedoch lieber eine HEAD-Anfrage verwenden, anstatt die Ressource wirklich mit GET zu laden. Versuchen

function fileExists(url) { 
    var req = new XMLHttpRequest(); 
    req.open('HEAD', url, false); 
    req.send(); 
    return req.status !== 404; 
} 

Wenn Sie wirklich 404 Zustände vermeiden möchten, installieren Sie einen Dienst auf dem Server, die Sie abfragen können, ob eine Datei/Pfad verfügbar ist. Es würde immer die XML/JSON/textliche Antwort mit einem 200-OK-Status zurückgeben, unabhängig davon, ob dieser true oder enthält.

+1

Danke, ich hatte davor Angst. Allerdings habe ich schon alle Methoden versucht (sogar PUT und DELETE: p) alle geben das gleiche Ergebnis obwohl :( – Harold

+1

Eigentlich funktioniert diese Lösung nicht. Eigentlich scheint der Fehler auf der Konsole auf diese Weise schlechter. –

+0

Ja, da stimmt etwas nicht Das OP und ich möchten, dass die Fehlermeldung verschwindet, weil kein Fehler aufgetreten ist. – DavidWalley

Verwandte Themen