Wykonuję połączenie AJAX, aby ustawić nazwę użytkownika. Jeśli nazwa użytkownika jest już zajęta, jaki kod HTTP powinienem zwrócić?Jaki kod błędu HTTP zwraca za nazwę już zajętą?
Odpowiedz
Nie ma kodu HTTP dla nazwy już pobranej. Zobacz List of HTTP Status Codes.
Jeśli używasz wywołań AJAX do ustawienia nazwy użytkownika, dlaczego nie chcesz wyświetlać błędu w kodzie HTML? Jest to bardziej przyjazne dla użytkownika, ponieważ użytkownicy zobaczą, co oznacza rzeczywisty błąd, zamiast zobaczyć kod 4XX.
chciałem złapać kod 4xx z jquery i wyświetlić przyjazny dla użytkownika komunikat o błędzie. – Ryan
Nie jesteś ograniczony do łapania rzeczy z kodami stanu http. zamiast tego możesz złapać komunikaty o błędach. Sprawdź [jQuery API na $ .ajax] (http://api.jquery.com/jQuery.ajax/). Poradnik 'success' powinien ci pomóc, po prostu sprawdź przykłady w API. – rationalboss
Jak skomentowałem poniżej, 200 oznacza sukces. Błędy kończące żądania gwarantują kod statusu błędu. Mam nadzieję, że Ryan nie wyszedł z drogi, by powrócić na dwadzieścia dwa lata, kiedy prośba się nie powiodła - to zły pomysł dookoła. –
Wybrałbym 422 Niepokonany podmiot. Wielu deweloperów rails używa tego do wszystkich błędów sprawdzania poprawności.
I tak, jest całkowicie właściwe, aby ocenić stan błędu i wyświetlić komunikat o błędzie za pomocą javascript. Jest to szczególnie przydatne, jeśli używasz tych samych działań dla interfejsu API. Następnie twoje żądania ajaxowe mają dostęp do tego samego interfejsu API, który można eksponować innym programistom.
Możesz użyć 409 Conflict.otherwise 200 z komunikatem o błędzie.
Nie ma tu żadnej zasady, to zależy od Ciebie. Jednak, jak powiedział @rationalboss, ma sens powrót 200 z komunikatem, ponieważ żądanie HTTP się powiodło, błąd nie jest związany z żądaniem.
400 błędów oznacza, że samo zapytanie nie było poprawne, np. Błędny czasownik lub brakujące parametry.
Pytanie dotyczy interpretacji, zarówno ze strony klientów oprogramowania, jak i ludzi, dlatego lepiej jest trzymać się z dala od kodów błędów, gdy nie ma błędu HTTP.
Nie zgadzam się, ale jak powiedziałeś, jest to kwestia opinii. Dla mnie błąd kończący prośbę gwarantuje kod błędu. Nie chcę, aby klient sprawdzał szczegóły w odpowiedzi, aby wiedzieć, że coś jest nie tak. Jeśli zwrócę OK, oznacza to, że udało się. Wszelkie błędy kończące żądanie powinny należeć do kategorii 400, chyba że jest to faktyczny wyjątek serwera, przypadek, w którym przechodzi do 500, ale nigdy 200. –
- 1. Jak określić kod błędu HTTP?
- 2. Prosty przerywacz: request_irq zwraca kod błędu -22
- 3. zwraca określony kod stanu http za pomocą php
- 4. HTTP kod błędu: 302 Dzwoniąc https WebService
- 5. HTTP GET Kod błędu z requests.exceptions.HTTPError
- 6. Apache/PHP zwraca kod stanu HTTP 200 na stronach błędów
- 7. http uzyskać NodeJS jak uzyskać kod statusu błędu?
- 8. Jak mogę uzyskać kod stanu z błędu http w Axios?
- 9. Status HTTP dla "już zalogowanego"
- 10. zwraca nazwę pliku
- 11. JAX/Jersey Kod błędu niestandardowego w odpowiedzi
- 12. Catching specyficzny kod błędu COMException
- 13. MySQL kod błędu 1235
- 14. Węzeł JS zwraca nazwę hosta
- 15. Jaki jest kod błędu 302, który rzuca jQuery AJAX?
- 16. Django zwraca HTTP 301?
- 17. getName wątek() zwraca złą nazwę
- 18. Kod błędu NSURLErrorDomain 1002 opis
- 19. SecItemCopyMatching zwraca wartość zerową bez żadnego błędu
- 20. Kod błędu Obsługa błędów wiadomości e-mail
- 21. Jak mogę zwrócić kod błędu HTTP bez domyślnego szablonu w Tornado?
- 22. 502 kod stanu HTTP
- 23. Trwa kod stanu HTTP?
- 24. Response.Redirect kod stanu HTTP
- 25. Facebook auth.extendssoaccesstoken kod błędu 10
- 26. Jak zrobić animację "zajętą" w systemie Android?
- 27. Niestandardowa strona błędu dla błędu HTTP 404.13 ASP.NET Core MVC
- 28. Kod stanu HTTP dla "sukcesu z błędami"?
- 29. Analizowanie odpowiedzi JSONP w języku JavaScript, gdy obecny jest kod błędu 4xx lub 5xx Http
- 30. Magento getProductUrl() zawsze zwraca HTTP
Możliwy duplikat [Który kod odpowiedzi HTTP dla "Ten adres e-mail jest już zarejestrowany"? (Http://stackoverflow.com/questions/9269040/which-http-response-code-for-this-email-is- już zarejestrowany) –