2008-09-18 34 views
33

Tài liệu chỉ ra rằng lỗi: tùy chọn chức năng sẽ có sẵn: XHR dụ, một chuỗi thông báo trạng thái (trong trường hợp này luôn luôn lỗi) và một đối tượng ngoại lệ tùy chọn trở về từ trường hợp XHR (Sách : JQuery trong Action)

Sử dụng sau đây (trong cuộc gọi $ .ajax) tôi đã có thể để xác định tôi đã có một "parsererror" và "thời gian chờ" (kể từ khi tôi thêm thời gian chờ: tùy chọn) lỗi

error: function(request, error){} 

Những thứ khác mà bạn đánh giá trong tùy chọn lỗi là gì? bạn có bao gồm đối tượng ngoại lệ tùy chọn không?

EDIT: một trong những câu trả lời chỉ ra tất cả các lỗi trở lại ... tìm hiểu thêm về những gì có giá trị (để gỡ lỗi) trong trường hợp XHR và đối tượng ngoại lệ sẽ là hữu ích

Đây là một $ hoàn chỉnh gọi .ajax:

$.ajax({ 
type: "post", 
url: "http://myServer/cgi-bin/broker" , 
dataType: "text", 
data: { 
'_service' : 'myService', 
'_program' : 'myProgram', 
'start' : start, 
'end' : end 
}, 
beforeSend: function() { 
    $("#loading").removeClass("hide"); 
}, 
timeout: 5000, 
error: function(request,error) { 
    $("#loading").addClass("hide"); 
    if (error == "timeout") { 
    $("#error").append("The request timed out, please resubmit"); 
    } 
    else { 
    $("#error").append("ERROR: " + error); 
    } 
    }, 
    success: function(request) { 
    $("#loading").addClass("hide"); 
    var t = eval("(" + request + ")") ; 
    } // End success 
}); // End ajax method 

Cảm ơn cho đầu vào

Trả lời

22

Nhìn vào mã nguồn jQuery, có bốn trạng thái trở lại, trong additon để thành công:

  • timeout - khi quy định thời gian chờ của bạn bị vượt quá
  • lỗi - http lỗi, giống như 404
  • notmodified - khi được yêu cầu tài nguyên không thay đổi kể từ yêu cầu cuối cùng
  • parsererror - khi một phản ứng xml/json là xấu
+3

cũng khi dataType: "json" và json được hình thành không chính xác –

+0

yep, cũng sẽ làm điều đó. đã chỉnh sửa. – Zach

0

bạn có chắc chắn rằng phản ứng là đúng? Phân tích lỗi có nghĩa là có sth sai với dữ liệu được evaluted phù var t = eval("(" + request + ")") ;

+0

xin lỗi, câu hỏi của tôi không rõ ràng. Tôi đã làm việc thông qua các vấn đề "parsererror" của tôi ... Tôi đã tự hỏi những thông tin khác có thể được xác định từ lỗi: tùy chọn –

1

Đối số thứ hai được truyền cho hàm lỗi của bạn sẽ hoặc là được chuỗi "timeout" "parserror" "error" hoặc "notmodified". Thứ ba sẽ là đối tượng ngoại lệ. Đối tượng này có thể hữu ích để gỡ lỗi.

+0

bạn có thể cập nhật câu trả lời của mình để giải thích thông tin gỡ lỗi hữu ích có thể thu được từ đối tượng ngoại lệ –

4

Đây là một sang một bên, nhưng tôi nghĩ có lỗi trong mã bạn đã gửi. Điểm mấu:

if (error = "timeout") { 

nên có nhiều dấu bằng trong đó:

if (error == "timeout") { 
+0

bắt tốt, chỉnh sửa bài đăng. Nó đã được một thời gian kể từ khi tôi đăng này, nhưng tôi nghĩ rằng đó chỉ là một lỗi đánh máy. cảm ơn vì phản hồi –

43

tôi thấy yêu cầu nhiều hữu ích hơn lỗi.

error:function(xhr,err){ 
    alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status); 
    alert("responseText: "+xhr.responseText); 
}

XHR là XMLHttpRequest.
readyState giá trị là 1: đang tải, 2: đã tải, 3: tương tác, 4: hoàn thành.
trạng thái là số trạng thái HTTP, ví dụ: 404: không tìm thấy, 500: lỗi máy chủ, 200: ok.
responseText là phản hồi từ máy chủ - đây có thể là văn bản hoặc JSON từ dịch vụ web hoặc HTML từ máy chủ web.

+0

câu trả lời hay, cảm ơn –

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