2012-09-29 14 views
10

Tôi đang thực hiện cuộc gọi AJAX để đặt tên người dùng. Nếu tên người dùng đã được lấy mã HTTP nào tôi nên quay trở lại?Mã lỗi HTTP nào cần trả lại cho tên đã được sử dụng?

+0

Bản sao có thể có của [Mã phản hồi HTTP nào cho "Email này đã được đăng ký"?] (Http://stackoverflow.com/questions/9269040/which-http-response-code-for-this-email-is- đã đăng ký) –

Trả lời

-2

Không có mã HTTP cho tên đã được sử dụng. Vui lòng xem List of HTTP Status Codes.

Nếu bạn đang sử dụng các cuộc gọi AJAX để đặt tên người dùng, tại sao không chỉ hiển thị lỗi trong HTML? Điều này thân thiện với người dùng hơn vì khách truy cập của bạn sẽ biết ý nghĩa của lỗi thực tế, thay vì nhìn thấy một số mã 4XX.

+1

tôi sẽ bắt mã 4xx với jquery và hiển thị thông báo lỗi thân thiện với người dùng. – Ryan

+0

bạn không bị giới hạn khi bắt những thứ có mã trạng thái http. bạn có thể nắm bắt các thông báo lỗi thay thế. Kiểm tra [API jQuery trên $ .ajax] (http://api.jquery.com/jQuery.ajax/). Trình xử lý 'success' sẽ giúp bạn, chỉ cần kiểm tra các ví dụ trong API. – rationalboss

+0

Như tôi đã nhận xét dưới đây, 200 là để thành công. Lỗi hoàn thành yêu cầu đảm bảo mã trạng thái lỗi. Tôi hy vọng Ryan đã không ra khỏi con đường của mình để trở về 200 khi yêu cầu đã thất bại - đó là một ý tưởng tồi tất cả các xung quanh. –

7

Tôi sẽ chọn 422 Thực thể không thể xử lý. Rất nhiều các nhà phát triển đường ray sử dụng điều này cho tất cả các lỗi xác nhận.

Và có, hoàn toàn thích hợp để đánh giá trạng thái lỗi và hiển thị thông báo lỗi bằng javascript. Điều này đặc biệt hữu ích, nếu bạn đang sử dụng các hành động tương tự cho một API. Sau đó, các yêu cầu ajax của bạn đang truy cập cùng một API mà bạn sẽ tiếp xúc với các nhà phát triển khác.

16

bạn có thể sử dụng 409 Xung đột.therwise 200 với thông báo lỗi.

1

Không có quy tắc nào ở đây, tùy thuộc vào bạn. Tuy nhiên, như @rationalboss cho biết, nó có ý nghĩa để trả lại 200 với một thông báo vì yêu cầu HTTP đã thành công, lỗi này không liên quan đến yêu cầu.

400 lỗi có nghĩa là bản thân yêu cầu không chính xác theo một cách nào đó, như động từ sai hoặc tham số bị thiếu.

Câu hỏi ở đây là về giải thích, cả từ khách hàng phần mềm và từ con người và có thể tốt hơn là tránh xa các mã lỗi khi không có lỗi HTTP.

+1

Tôi không đồng ý, nhưng như bạn đã nói đó là vấn đề quan điểm. Đối với tôi, lỗi khi hoàn thành yêu cầu sẽ đảm bảo mã lỗi. Tôi không muốn một khách hàng phải kiểm tra các chi tiết trong phản ứng để biết có điều gì đó sai. Nếu tôi trả lại OK, điều đó có nghĩa là nó đã thành công. Bất kỳ lỗi nào hoàn thành yêu cầu phải thuộc danh mục 400, trừ khi nó là một ngoại lệ máy chủ thực sự, trường hợp trong đó nó đi đến 500, nhưng không bao giờ 200. –

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