2016-05-31 3 views
0

Ich versuche zu überprüfen, ob eine Seite im Web existiert. Ich brauche den Inhalt nicht, nur um zu wissen, ob die Seite existiert oder nicht.Erhalten Sie den Statuscode einer XHR-Anfrage ohne CORS-Header

try { 
    jQuery.ajax(link, { 
     statusCode: { 
     404: function() { 
      jQuery("#moreInfo").html("not working"); 
     }, 
     200: function() { 
      jQuery("#moreInfo").html("<a href='" + link + "'>Technical Details</a>"); 
     } 
     } 
    }); 
} catch (e) { 
    console.log(e); 
} 

Ich habe festgestellt, dass der Browser, ob weiß oder nicht es eine 404-Antwort bekam, das alles, was ich wissen müssen, ist.

Ich habe versucht, die Anfrage in der Konsole ausgeführt und fanden die folgende:

Internet Explorer: Auf einer 200-Antwort, 11 IE einen Fehlercode von 0x2ef1 gibt, während auf einem 404 es 0x80070005

sagt

Chrome: Eine 404-Antwort fügt der Standardantwort für keine CORS-Kopfzeile Folgendes hinzu: The response had HTTP status code 404.

Firefox: Meldet den Statuscode an die Konsole, wenn die Netzwerk-Nachrichten aktiviert sind - [HTTP/1.1 404 NOT FOUND 6ms]

Gibt es eine Möglichkeit, diese Informationen in meinem Skript zu erhalten und zu überprüfen, ob die Anforderung erfolgreich war oder nicht? Oder gibt es eine bessere Möglichkeit festzustellen, ob eine Seite auf der Clientseite existiert?

Antwort

1

Gibt es eine Möglichkeit, diese Informationen in meinem Skript zu erhalten und zu überprüfen, ob die Anfrage erfolgreich war oder nicht?

Nicht mit clientseitigem Code.

Der Browser weiß und teilt dem Benutzer gerne den Browser mit, aber die selbe Ursprungsrichtlinie verbietet es, JavaScript einzugeben.

Sie müssen dies mit serverseitigem Code tun.

1

Wenn Sie nur überprüfen möchten, ob die Seite vorhanden ist oder nicht, verwenden wir sie bei uns.

function isValidURL(link) { 
    var encodedURL = encodeURIComponent(link); 
    var isValid = false; 

    $.ajax({ 
     url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22" + encodedURL + "%22&format=json", 
     type: "get", 
     async: false, 
     dataType: "json", 
     success: function(data) { 
     isValid = data.query.results != null; 
     }, 
     error: function(){ 
     isValid = false; 
     } 
    }); 

    return isValid; 
} 

Wenn es vorhanden ist, dann wird Funktion Sie return true sonst falsch

Verwandte Themen