2012-09-29 2 views
10

나는 사용자 이름을 설정하기 위해 AJAX 호출을하고있다. 사용자 이름이 이미 사용 된 경우 어떤 HTTP 코드를 반환해야합니까?이름에 대해 반환 할 HTTP 오류 코드는 무엇입니까?

+0

[이 전자 메일이 이미 등록되었습니다]에 대한 HTTP 응답 코드는 무엇입니까?] (http://stackoverflow.com/questions/9269040/which-http-response-code-for-this-email-is- 이미 등록되었습니다.) –

답변

-2

이미 사용 된 이름에 대한 HTTP 코드가 없습니다. List of HTTP Status Codes을 참조하십시오.

사용자 이름을 설정하기 위해 AJAX 호출을 사용하는 경우 HTML에 오류를 표시하는 것이 가장 좋은 이유는 무엇입니까? 방문자가 몇 가지 4XX 코드를 보는 대신 실제 오류의 의미를 알면 사용자 친화적입니다.

+1

jquery로 4xx 코드를 잡아 내고 사용자에게 친숙한 오류 메시지를 표시하려고했습니다. – Ryan

+0

당신은 http 상태 코드로 잡는 것에 국한되지 않습니다. 대신에 오류 메시지를 잡을 수 있습니다. [jQuery API on $ .ajax] (http://api.jquery.com/jQuery.ajax/)를 확인하십시오. 'success' 핸들러가 도움이 될 것입니다. API의 예제를 확인하십시오. – rationalboss

+0

아래에서 언급했듯이 200은 성공을위한 것입니다. 요청을 완료하는 중 오류가 발생하면 오류 상태 코드가 정당합니다. Ryan이 요청이 실패했을 때 200 초를 되돌려 보내지 않았 으면 좋겠다. –

7

422 Unprocessable Entity를 선택합니다. 많은 레일 개발자가 모든 유효성 검사 오류에이 기능을 사용합니다.

예, 오류 상태를 평가하고 javascript로 오류 메시지를 렌더링하는 것이 적절합니다. 이는 API에 대해 동일한 조치를 사용하는 경우에 특히 유용합니다. 그런 다음 아약스 요청은 다른 개발자에게 공개 할 API와 동일한 API에 액세스합니다.

16

오류 메시지와 함께 409 Conflict.otherwise 200을 사용할 수 있습니다.

1

여기에는 규칙이 없습니다. 귀하에게 달려 있습니다. 그러나 @rationalboss가 말했듯이, HTTP 요청이 성공했기 때문에 메시지로 200을 반환하는 것이 합리적입니다. 오류는 요청과 관련이 없습니다.

400 오류는 요청 자체가 잘못된 동사 또는 누락 된 매개 변수와 같이 어떤 식 으로든 올바르지 않음을 의미합니다.

여기에 소프트웨어 클라이언트와 사람의 해석에 대한 질문이 있으며 HTTP 오류가없는 경우 오류 코드를 멀리하는 것이 좋습니다.

+1

나는 동의하지 않지만 당신이 말했듯이 그것은 의견의 문제입니다. 나에게 요청을 완료하는 중에 오류가 발생하면 오류 코드가 발생합니다. 나는 고객이 뭔가 잘못된 것을 알기 위해 응답에서 세부 사항을 확인하는 것을 원하지 않는다. 내가 OK로 돌아 가면, 성공했다는 뜻입니다. 요청을 완료하는 모든 오류는 실제 서버 예외 인 경우가 아니면 400 범주에 속해야합니다. 즉, 500으로 이동하지만 200으로 이동하지 않는 경우입니다. –

관련 문제