2012-03-19 3 views
0

JSON을 사용하여 AJAX 양식 게시물을 수행하는 .NET MVC 사이트가 있습니다. 유효성 검사 오류가 발생하면 (예 : 사용자가 필수 필드를 누락 한 경우) 서버는 JSON 객체에 유효성 검사 오류를 반환하고 응답의 HTTP 상태 코드를 400 범위의 값으로 설정합니다. 우리의 로컬 컴퓨터에서는 이것이 정상적으로 작동합니다.4xx 서버 응답 JSON 데이터가 포함되지 않음

그러나 CI 환경에서는 코드가 변경되지 않고 갑자기 작동이 멈췄습니다. 응답은 올바른 HTTP 코드를 사용하여 서버에서 반환되지만 컨텐트는 컨트롤러가 반환하는 JSON이 아니라 표준 .NET 오류 페이지 HTML (즉, 상태 코드가 400 인 경우 11 바이트의 '잘못된 요청'응답)입니다.

오류 코드는 각 유효성 검증 오류에 대해 올바르므로 올바른 컨트롤러/조치가 적용되고 유효성 검사가 올바르게 작동하지만 JSON이 일부 손상 될 수 있습니다. 왜 이런 일이 일어날 지 모릅니다.

+0

서버가 * successful * 유효성 검사 (* 결과 *가 항목이 실제로 유효하지 않음을 나타낼 수 있음)에 대해 400 범위의 코드를 반환한다는 사실은 HTTP의 악의적 인 사용입니다. 당신이 처음부터 해야하는 것처럼 200 OK를 반환하고 문제는 마술처럼 사라집니다. – Jon

+0

더 적절한 코드를 사용할 수 있습니까? 또는 JSON에 'success'필드를 포함하고 유효성 검사가 실패하더라도 200을 반환하는 것이 더 낫습니까? –

+0

두 번째 옵션. – Jon

답변

0

요청 구문이 올바르지 않아 400 코드가 표시됩니다. 실제로 json 데이터를 올바르게 인코딩했는지 확인하십시오.

관련 문제