2016-04-11 7 views
3

Ich benutze pure js (ohne JQuery), um eine XMLHttpRequest Anfrage an Server zu senden.kann nicht umgehen net :: ERR_CONNECTION_REFUSED in reinem js

 var _xhr = new XMLHttpRequest(); 

     _xhr.open(type, url); 
     _xhr.setRequestHeader('Content-Type', 'application/json'); 

     _xhr.responseType = 'json'; 
     _xhr.onload = function() { 
      if (_xhr.status === 200) { 
       var _json = _xhr.response; 
       if (typeof _json == 'string') 
        _json = JSON.parse(_json); 
       success(_json); 
      } else { 
       error(_xhr); 
      } 
     }; 
     _xhr.onerror = function(){ 
      console.log('fail'); 
     }; 
     try { 
      _xhr.send(_to_send); 
     } catch (e){ 
      options.error(_xhr); 
     } 

wenn ich senden eine Anfrage, es ist nicht (das ist ok) und ich erhalte eine Fehlermeldung, aber ich CANNON Handle It. xhr.onerror druckt Nachricht an Konsole, aber ich bekomme OPTIONS url net::ERR_CONNECTION_REFUSED auch. Wie kann ich diese Nachricht in der Konsole vermeiden?

Auch verwende ich window.onerror alle Fehler zu behandeln, aber ich dieses OPTIONS url net::ERR_CONNECTION_REFUSED

Antwort

0

nicht verarbeiten kann um diesen Fehler gibt es keine Möglichkeit in der Konsole zeigt. Genau wie wenn Sie eine Datei anfordern, die nicht existiert, erhalten Sie eine 404 in der Konsole, unabhängig davon, ob Sie den Fehler behandeln oder nicht.

0

Das ist für mich gearbeitet:

// Watch for net::ERR_CONNECTION_REFUSED and other oddities. 
_xhr.onreadystatechange = function() { 
    if (_xhr.readyState == 4 && _xhr.status == 0) { 
    console.log('OH NO!'); 
    } 
}; 

Dies wird nur Netz nicht darauf beschränkt :: ERR_CONNECTION_REFUSED, da andere Netzwerkfehler (zB net :: ERR_NETWORK_CHANGED, net :: ERR_ADDRESS_UNREACHABLE, net :: ERR_TIMED_OUT) kann auf diese Weise "gefangen" werden. Ich kann diese Fehlermeldungen innerhalb des _xhr-Objekts nirgendwo finden, so dass eine programmatische Entscheidung darüber, welcher Netzwerkfehler speziell aufgetreten ist, nicht zuverlässig ist.