2013-07-10 35 views
24
xmlhttp.onreadystatechange = function() 
{ 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
    { 
     document.getElementById("myDiv").innerHTML = xmlhttp.responseText; 
    } 
} 

Mã trên là từ: http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp.readyState vs status == 200

Câu hỏi:

Theo hướng dẫn này:

readyState: 4: request finished and response is ready 

status: 200: "OK" 

When readyState is 4 and status is 200, the response is ready: 

kể từ khi xmlhttp.readyState == 4, phản ứng đã sẵn sàng, tại sao chúng ta vẫn cần xmlhttp.status == 200? sự khác nhau giữa xmlhttp.readyState == 4xmlhttp.status == 200 là gì?

Trả lời

25

Trạng thái của phản hồi, xhr.status, là (thường) được sử dụng để xác định xem yêu cầu có thành công hay không. xhr.readyState chỉ đơn giản được sử dụng để xác định trạng thái yêu cầu, chẳng hạn như "chưa được gửi" (0), "hoàn thành và phản hồi đã nhận" (4), v.v.

Máy chủ chịu trách nhiệm cung cấp status, trong khi tác nhân người dùng cung cấp readyState.

+0

chính xác những gì tôi cần! –

1

Cân nhắc bạn gặp lỗi trên mã phía máy chủ của mình. Bạn yêu cầu trang và readyState sẽ là 4 khi máy chủ kết thúc truyền trực tuyến phản hồi, nhưng mã trạng thái sẽ là 500 (hoặc 500-cái gì đó).

0

readyState đề cập đến phản hồi của yêu cầu - đó là 4 khi bạn đã hoàn thành việc truy xuất phản hồi và có điều gì đó cần xem xét. Giá trị thực tế vẫn chưa được biết, vì vậy bạn cần kiểm tra số status đã được trả lại.

14

trạng thái cho biết phản hồi của máy chủ có ổn không.
Nói cách chung, khi bạn có một tình trạng

500 - 599: máy chủ đã có một lỗi

400 - 499: đây là một lỗi khách hàng (Ví dụ: không tìm thấy 404 trang)

300 - 399: sau đó tồn tại một chuyển hướng

200 - 299: sau đó nó là chính xác và

100 - 199: nghĩa là thông báo thông tin

Sau đó, tình trạng == 200 là nhận bạn một tin nhắn mà máy chủ nói: 'Hey người đàn ông tôi làm việc!'

+0

cảm ơn nó thực sự đã giúp –

+0

'Này người đàn ông tôi làm công việc!' hehehe như lời giải thích đó – samer

14

tương tự của tôi:. Một xe cứu thương chở một bệnh nhân đang đi đến một hospital.In kịch bản này gia đình (khách hàng) và bệnh viện (server) cần phải theo dõi trong hai điều

  • Ambulance đạt bệnh viện thành công (readyState)
  • Cập nhật sức khỏe của bệnh nhân trong quá trình này.(status)

Nếu readyState === 4status === 200, có nghĩa là tất cả mọi thứ là tất cả right.In theo cùng một cách thức hoạt động của cuộc gọi ajax.

+0

cảm ơn nó thực sự đã giúp –

9

readyState Giữ trạng thái của XMLHttpRequest. Những thay đổi 0-4:

0: Yêu cầu không được khởi tạo

1: kết nối máy chủ thành lập

2: Yêu cầu nhận

3: thực hiện yêu cầu

4: yêu cầu hoàn thành và phản hồi sẵn sàng trạng thái 200: "OK" 404: Không tìm thấy trang

+0

nhờ nó thực sự đã giúp –

0

onreadystatechange = function() chỉ thực hiện khi chúng tôi nhận được phản hồi từ máy chủ. Nếu chúng tôi nhận được phản hồi từ máy chủ có nghĩa là yêu cầu của chúng tôi đã hoàn tất được chỉ ra bởi 4.Và 200 cho chúng tôi biết trạng thái của nó là chính xác. "4: yêu cầu hoàn tất và phản hồi sẵn sàng trạng thái 200" Chúng tôi nhận trạng thái 404 nếu không tìm thấy trang.

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