2012-09-17 46 views
15

Trong một yêu cầu ajax làm thế nào có thể gọi lại lỗi được kiểm tra? Có thể mô phỏng lỗi kết nối mạng không?Làm cách nào để kiểm tra lỗi gọi lại ajax?

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

     }, 
     error: function (xhr) { 

    } 

    }); 
+0

Bạn có đang triển khai AJAX đơn giản hay sử dụng jQuery không? –

+0

nạp đối tượng xmlhttprequest với một url sai (một cái gì đó như mydomain.com/thisurldoesntexist) –

+0

@KPBird vui lòng xem câu hỏi chỉnh sửa, im bằng cách sử dụng jQuery –

Trả lời

15

Bạn có thể chỉ cần đặt một URL không chính xác vào thuộc tính URL của cuộc gọi AJAX.

+0

Điều này không làm việc cho tôi! Tôi đã gõ url: "asdjasfd.php" bên trong hàm $ .ajax() của tôi! và tôi đã đặt lỗi \t: chức năng (jqXHR, textStatus, errorThrown) {alert (testStatus); }, bên trong hàm $ .ajax()! Tôi không thấy bất kỳ cảnh báo Javascript nào! –

+0

Bạn thấy gì trong bảng điều khiển mạng? –

+0

Không có gì ... Tôi sử dụng chrome, và yêu cầu AJAX chỉ đi liền mạch .. Tôi cũng đã thêm một cảnh báo cho sự thành công: function (data, textStatus, jQxhr). Ngay cả cảnh báo này tôi cũng không nhận được. Rightnow, cho đúng url, tôi nhận được thành công như thông điệp cảnh báo! –

3

Điều tôi làm là tắt máy chủ trước khi tôi thực hiện yêu cầu AJAX, mô phỏng máy chủ sẽ không phản hồi.

Hãy nhớ rằng nó sẽ cần phải được bật lại trước khi bạn có thể làm mới thay đổi.

1

Bạn phải gửi yêu cầu ajax và trả về phản hồi tùy chỉnh sẽ kích hoạt cuộc gọi lại lỗi. Bạn có thể thực hiện điều này dễ dàng với các khuôn khổ thử nghiệm Javascript như Jasmine.

1

Nếu URL của bạn là một trang PHP, bạn có thể làm một cái gì đó như thế này:

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

Bạn chỉ có thể nhận xét nó ra sau khi bạn hoàn tất việc kiểm tra hàm lỗi của bạn.

Các vấn đề liên quan