Tôi đang phát triển giao diện người dùng tiêu thụ các dịch vụ JSON do máy chủ cung cấp.Angular2 HTTP - Cách hiểu rằng máy chủ phụ trợ bị gỡ xuống
Tôi vui vẻ sử dụng HTTP của Angular2 và tôi có thể phát hiện lỗi thông qua nhà điều hành .catch()
.
Nếu tôi tìm thấy sự cố liên quan đến dịch vụ cụ thể (ví dụ: dịch vụ không được máy chủ xác định), nhà điều hành catch()
sẽ nhận được Response
với trạng thái 404
và tôi có thể dễ dàng quản lý tình huống.
Mặt khác, nếu máy chủ hoàn toàn ngừng hoạt động, nhà điều hành catch()
sẽ nhận được Phản hồi có mã trạng thái 200
và không có dấu hiệu hoặc văn bản cụ thể nào liên quan đến nguyên nhân của sự cố (đó là toàn bộ máy chủ xuống). Trên bảng điều khiển, tôi thấy rằng góc (http.dev.js) viết một tin nhắn net::ERR_CONNECTION_REFUSED
nhưng tôi không biết cách làm điều gì đó tương tự (tức là hiểu điều gì đang xảy ra và phản ứng một cách thích hợp) từ bên trong mã của tôi.
Mọi trợ giúp sẽ được đánh giá cao.
Bạn tìm một giải pháp cho việc này? Xem thêm câu trả lời của tôi ở đây .... –
Nếu tôi gặp lỗi trong thao tác http (ví dụ POST, GET) và trạng thái lỗi là 200 thì tôi giả sử toàn bộ máy chủ bị hỏng, giống như 'private handleError (lỗi: Response) { lỗi ler; if (error.status == 200) { errorText = 'Toàn bộ server bị hỏng. Kết nối đã bị từ chối. '; } trả lại Observable.throw (errorText || 'Lỗi máy chủ'); } '; xa chắc chắn rằng phương pháp này là thực sự OK, nhưng dường như làm việc trong các trường hợp tôi phải đối mặt – Picci
Hình như một giải pháp tốt. Nhưng bạn nên nhận ra rằng mã của bạn sẽ bị hỏng nếu chúng giải quyết vấn đề này và bạn nâng cấp. Do đó, có thể nên đặt một 'TODO' mỗi khi bạn sử dụng cách này –