2012-09-17 33 views
15

All'interno di una richiesta Ajax come può essere verificato il callback dell'errore? È possibile simulare un errore di connessione di rete?Come testare la callback degli errori ajax?

$.ajax({ 
     url: "myUrl",  
     type: 'post', 
     dataType : "json", 
     data : ({ 
      myJson 
     }), 
     success : function(jsonSaveResponse) { 

     }, 
     error: function (xhr) { 

    } 

    }); 
+0

Stai implementando semplicemente AJAX o sta utilizzando jQuery? –

+0

feed l'oggetto xmlhttprequest con un falso URL (qualcosa come mydomain.com/thisurldoesntexist) –

+0

@KPBird per favore vedi la domanda edit, im usando jQuery –

risposta

15

Si potrebbe semplicemente inserire un URL errato nell'attributo URL della chiamata AJAX.

+0

Questo non funziona per me! Ho digitato url: "asdjasfd.php" nella mia funzione $ .ajax()! e ho impostato l'errore \t: function (jqXHR, textStatus, errorThrown) {alert (testStatus); }, all'interno della funzione $ .ajax()! Non vedo alcun avviso Javascript! –

+0

Cosa vedi nel pannello di rete? –

+0

Niente ... Io uso chrome e la richiesta AJAX va semplicemente alla perfezione. Ho anche aggiunto un avviso per il successo: function (data, textStatus, jQxhr). Anche questo avviso che non ho ricevuto. Giusto, per l'url corretto, ottengo successo come messaggio di avviso! –

3

quello che faccio è solo girare il mio server spento prima di effettuare la richiesta AJAX, che simulerà il server non risponde.

Ricordare che sarà necessario riattivare prima di poter aggiornare le modifiche.

1

È necessario interrompere la richiesta Ajax e restituire una risposta personalizzata che attiverà la richiamata di errore. Puoi farlo facilmente con i framework di test Javascript come Jasmine.

1

Se l'URL è una pagina PHP, si può fare qualcosa di simile:

<?php 
    header("HTTP/1.0 404 Not Found"); 
    exit(); 
    //the rest of your code 

Si può semplicemente lasciare un commento, fuori dopo, quando hai finito di testare il funzione di errore.

Problemi correlati