문제

jQuery ajax 메소드 를 사용하여 양식 데이터를 제출합니다. 오류를 처리하는 가장 좋은 방법은 무엇입니까? 다음은 호출의 예입니다. 라코 디스

사용자 이름 중복, 이메일 주소 중복 등과 같은 여러 가지 이유로 요청이 실패 할 수 있으며,이 경우 예외를 발생 시키도록 ashx가 작성됩니다.

내 문제는 예외를 던짐으로써 ashx가 statusTexterrorThrown undefined 로 만드는 것 같습니다.

표준 .net 오류 페이지를 구성하는 HTML이 포함 된 XMLHttpRequest.responseText를 확인할 수 있습니다.

responseText에서 페이지 제목을 찾고 제목을 사용하여 어떤 오류가 발생했는지 알아 내고 있습니다. 사용자 정의 오류 처리 페이지를 활성화하면 이것이 무너질 것이라는 의혹이 있지만

ashx에 오류를 표시해야합니까, 아니면 userCreation.ashx 호출에서 반환 된 데이터의 일부로 상태 코드를 반환해야합니까? 그런 다음이를 사용하여 수행 할 작업을 결정해야합니까?
이러한 상황을 어떻게 처리합니까?

도움이 되었습니까?

해결책

<인용구>

내가 오류를 던지고 있어야합니까? ashx, 또는 내가 반환해야 데이터의 일부인 상태 코드 에 대한 호출로 반환 userCreation.ashx를 사용하여 취할 조치를 결정합니까?당신은 어떻게 이러한 상황을 처리 하시겠습니까?

개인적으로 가능하다면이 문제를 서버 측에서 처리하고 거기에서 사용자에게 메시지를 보내는 것을 선호합니다.이것은 사용자에게 무슨 일이 일어 났는지 알려주는 메시지 (기본적으로 유효성 검사 메시지) 만 표시하려는 시나리오에서 매우 잘 작동합니다.

그러나 서버에서 발생한 일을 기반으로 작업을 수행하려면 상태 코드를 사용하고 해당 상태 코드를 기반으로 다양한 작업을 수행하는 자바 스크립트를 작성하는 것이 좋습니다.

다른 팁

디버깅을 위해 일반적으로 페이지에 요소 (아래의 경우 <div id="error"></div>)를 만들고 여기에 XmlHttpRequest를 작성합니다. 라코 디스

그런 다음 발생하는 오류 유형을 확인하고 올바르게 캡처 할 수 있습니다. 라코 디스

ashx에서 새로운 예외 (예 : "Invalid User"등)를 던진 다음 XMLHttpRequest.responseText에서 파싱 할 수 있습니까?오류가 발생하면 XMLHttpRequest.responseText가 표준 Asp.Net 오류 페이지가 아니며 다음과 같은 오류가 포함 된 JSON 개체입니다. 라코 디스

편집 : 내가 호출하는 함수에 다음 속성이 표시되어 있기 때문일 수 있습니다. 라코 디스

이제 어떤 답변을 받아 들여야할지 문제가 생겼습니다.

문제에 대해 더 깊이 생각해 보면 제가 잘못 예외를 던지고 있다는 결론에 도달했습니다. 중복 된 사용자 이름, 이메일 주소 등은 가입 과정에서 예상되는 문제이므로 예외가 아니라 단순히 오류입니다. 어떤 경우에는 예외를 던지지 않고 오류 코드를 반환해야합니다.

이 경우 irobinson 접근 방식이이 경우에 취해야한다고 생각하게합니다. UI의 일부만 표시됩니다. 이제이 솔루션을 구현했으며 표시 할 상태 및 선택적 메시지가 포함 된 xml을 반환합니다. 그런 다음 jQuery를 사용하여 구문 분석하고 적절한 조치를 취할 수 있습니다.- 라코 디스

그러나 travis ' 답변은 매우 자세하며 디버깅 중 또는 예외 메시지를 표시하려는 경우에 완벽합니다. 사용자. 확실히 JSON을 다시받지 못하기 때문에 트래비스가 나열한 속성 중 하나 일 것입니다. 코드에 포함되어 있지 않기 때문입니다.

(irobinson의 답변을 수락하지만 travis의 답변에 찬성표를 던집니다. 가장 많은 표를 얻지 못한 답변을 수락하는 것이 이상합니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top