2010-03-22 27 views
5

Trong XMLHttpRequest Spec nó nói rằng:Trong XMLHttpRequest, biến lỗi cờ ở đâu?

Nhà nước HOÀN THÀNH có liên quan đến lỗi cờ cho biết một số loại lỗi mạng hoặc phá thai. Có thể là đúng hoặc sai và có giá trị ban đầu là false .

Cũng nói điều gì đó tương tự về cờ "gửi()" trong trạng thái "MỞ".

Được nói trong đặc điểm kỹ thuật nhưng không có trong IDL và khi tôi tạo một XMLHttpRequest mới, tôi không thể tìm thấy những "cờ" đó.

Các biến boolean ở đâu?

+1

Bất kỳ lý do gì bạn đang làm việc ở mức thấp này? chắc chắn jquery hoặc tương tự sẽ cho bạn kết quả tốt hơn. –

+1

@Byron Whitlock, jQuery ajax chỉ là một trình bao bọc của các cuộc gọi Ajax, và tôi đồng ý, nó cho bạn kết quả lỗi tốt hơn. –

+0

Cả hai đều đúng, cuối cùng tôi sẽ sử dụng jQuery và tôi thậm chí không cần phải sử dụng những "lá cờ" nhưng tôi muốn biết những gì đang xảy ra cơ bản mặc dù cuối cùng tôi sẽ sử dụng jQuery cho tất cả. –

Trả lời

3

tôi wrote đến webapps danh sách e-mail về những lá cờ, đây là những gì they responded:

Tất cả những gì mà tác giả có thể sử dụng là bày tỏ trong Web IDL mảnh. Mọi thứ bên ngoài đại diện cho một số loại triển khai dữ liệu cần để giữ khoảng cách này hay cách khác để triển khai đúng cách đặc điểm kỹ thuật.

(Đó là nghi ngờ của tôi)

5

Thuộc tính XMLHttpRequest.readyState là những gì bạn đang tìm kiếm.

Từ Spec bạn đã đưa ra, bạn sẽ thấy rằng tất cả những cờ "boolean" đó thực sự là giá trị số.

  • Unsent (số 0)
  • ĐƯA RA (số 1)
  • HEADERS_RECEIVED (số 2)
  • LOADING (số 3)
  • HOÀN THÀNH (số 4)

Các giá trị này là kết quả của XMLHttpRequest.onreadystatechange trình xử lý sự kiện. Về cơ bản, để có được những giá trị đó, hãy làm điều gì đó của hiệu ứng này.

//In Javascript 
var request = new XMLHttpRequest(); 
if (request) { 
    request.onreadystatechange = function() { 
    if (request.readyState == 4) { //Numeric 4 means DONE 

     } 
    }; 

request.open("GET", URL + variables, true); //(true means asynchronous call, false otherwise) 
request.send(""); //The function that executes sends your request to server using the XMLHttpRequest. 
} 

Ghi nhớ, luôn luôn viết onreadystatechange kiện TRƯỚC gọi phương thức XMLHttpRequest.send() (nếu bạn quyết định làm cuộc gọi không đồng bộ). Ngoài ra, các cuộc gọi không đồng bộ sẽ gọi số XMLHttpRequest.onreadystatechange trình xử lý sự kiện để luôn luôn quan trọng đối với bạn. Thông tin

Thông tin thêm về Wikipedia

+1

+1 để đề cập rằng bạn phải xác định onreadystatechange trước khi gọi gửi. Cạm bẫy phổ biến. – Warty

+1

Cảm ơn thông tin, nó gọn gàng và rõ ràng. Tôi biết điều này, những gì tôi đang tự hỏi là nếu bạn có quyền truy cập vào những "lá cờ" đó trực tiếp trong đối tượng, điều tôi muốn biết nhiều hơn là tính khả dụng hơn (nó vô dụng, tôi biết). Xin lỗi nếu tôi không rõ ràng trong câu hỏi. Tôi cũng đã viết vào danh sách e-mail webapps w3c, tôi sẽ đặt câu trả lời đó vào một câu trả lời mới. –

+0

@downvoter, có gì với downvote? Xây dựng xin vui lòng. –

4

Tôi đã nghe nói rằng các biên tập viên XHR nói rằng lá cờ lỗi tham chiếu trong spec là một biến số thực hiện nội bộ mà người tiêu dùng không thể truy cập.

Tương tự với cờ "gửi()".

+0

Cảm ơn, tôi đã viết cho biên tập viên một thời gian trước và nhận được câu trả lời, đó là những gì bạn đã viết. Tôi xin lỗi vì tôi đã không gắn thẻ câu trả lời đó là câu trả lời được chấp nhận. –

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