2012-09-17 21 views
15

Dentro de una solicitud de ajax, ¿cómo se puede probar la devolución de llamada de error? ¿Es posible simular un error de conexión de red?Cómo probar la devolución de llamada de error ajax?

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

     }, 
     error: function (xhr) { 

    } 

    }); 
+0

¿Está implementando AJAX simple o está usando jQuery? –

+0

alimenta el objeto xmlhttprequest con una URL falsa (algo así como mydomain.com/thisurldoesntexist) –

+0

@KPBird, mira la edición de la pregunta, estoy usando jQuery –

Respuesta

15

Simplemente podría poner una URL incorrecta en el atributo URL de la llamada AJAX.

+0

¡Esto no funciona para mí! He escrito url: "asdjasfd.php" dentro de mi función $ .ajax()! y he configurado el error \t: function (jqXHR, textStatus, errorThrown) {alert (testStatus); }, dentro de la función $ .ajax()! ¡No veo ninguna alerta de Javascript! –

+0

¿Qué ves en el panel de red? –

+0

Nada ... Utilizo Chrome, y la solicitud AJAX simplemente funciona a la perfección. También he agregado una alerta para el éxito: function (data, textStatus, jQxhr). Incluso esta alerta no la recibí. Ahora, para la URL correcta, ¡tengo éxito como mensaje de alerta! –

3

lo que hago es sólo a su vez mi servidor fuera antes de hacer la petición AJAX, que simulará el servidor no responde.

Recuerde que deberá volver a encenderse para poder actualizar los cambios.

1

Tiene que anclar la solicitud de AJAX y devolver una respuesta personalizada que desencadenará la devolución de llamada de error. Puede hacerlo fácilmente con marcos de prueba de Javascript como Jasmine.

1

Si la URL es una página PHP, usted puede hacer algo como esto:

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

simplemente se puede comentar que más tarde cuando haya terminado de probar la función de error.

Cuestiones relacionadas