2012-09-17 32 views
15

在ajax請求中,如何測試錯誤回調?是否有可能模擬網絡連接錯誤?如何測試ajax錯誤回調?

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

     }, 
     error: function (xhr) { 

    } 

    }); 
+0

你在實現普通的AJAX還是使用jQuery? –

+0

用錯誤的URL提供xmlhttprequest對象(類似於mydomain.com/thisurldoesntexist) –

+0

@KPBird請參閱問題編輯,即時通訊使用jQuery –

回答

15

您可以簡單地將不正確的URL放入AJAX調用的URL屬性中。

+0

這不適合我!我在我的$ .ajax()函數裏輸入了url:「asdjasfd.php」!我已經設置錯誤\t:function(jqXHR,textStatus,errorThrown){alert(testStatus); },在$ .ajax()函數中!我沒有看到任何Javascript警報! –

+0

你在網絡面板上看到什麼? –

+0

什麼都沒有...我使用chrome,並且AJAX請求可以無縫地進行。我還爲成功添加了一個提示:function(data,textStatus,jQxhr)。即使這個警報我沒有得到。現在,爲了獲得正確的網址,我可以成爲警報信息! –

3

我做的是隻是把我的服務器關閉之前,我做了AJAX請求,從而將模擬服務器沒有響應。

請記住,在刷新更改之前,需要重新啓用它。

1

您必須存根ajax請求,並返回將觸發錯誤回調的自定義響應。您可以使用Javascript測試框架輕鬆完成此操作,例如Jasmine

1

如果您的網址是一個PHP頁面,你可以做這樣的事情:

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

你可以簡單地把它註釋掉後,當你完成你的測試誤差函數。