bestsource

ASP를 사용하여 jQuery AJAX 콜에서 "에러" 콜백을 트리거하려면 어떻게 해야 합니까?NET MVC?

bestsource 2023. 2. 28. 23:39
반응형

ASP를 사용하여 jQuery AJAX 콜에서 "에러" 콜백을 트리거하려면 어떻게 해야 합니까?NET MVC?

이것은 jQuery AJAX 호출로부터의 에러 처리 방법에 관한 질문입니다.몇 가지 응답에서는 jQuery AJAX 콜의 오류를 표시하기 위해 "error" 콜백을 사용할 것을 제안했습니다.ASP를 어떻게 사용하는지 궁금했어요.NET MVC. 컨트롤러 액션이 "error" 콜백에서 액세스할 수 있는 오류를 반환하는 방법이 있습니까?클라이언트측 코드는 다음과 같습니다.

$.ajax({
   type: "POST",
   url: "MyUrl",
   data: "val1=test",
   success: function(result){
        // Do stuff
   },
   error: function(request,status,errorThrown) {

   }
 });

메모: 이것은 ASP보다 먼저 게시되었습니다.Net MVC는 1.0을 기록했고, 그 이후로는 프레임워크조차 보지 못했습니다.당신은 아마도 이것을 지지하지 않는 것이 좋을 것입니다.


다음과 같은 작업을 수행합니다.

Response.StatusCode = (int)HttpStatusCode.BadRequest;
actionResult = this.Content("Error message here");

상태 코드는 오류의 성질에 따라 달라집니다.일반적으로 사용자가 생성한 문제의 경우 4xx, 서버 측의 경우 5xx입니다.

사용하시는 경우

[HandleError]

그러면 HttpException을 투척하는 것이 포착되어 커스텀에러 페이지로 라우팅 됩니다.

또 다른 옵션은

Response.StatusCode = 500;
Response.Write("Error Message");
Response.End();

이 글을 쓸 수 있는 더 편리한 방법이 있을 것 같은데, 아직 우연히 발견하지는 못했습니다.

MVC 3을 사용하는 경우 HTTP 상태 코드와 상태 메시지를 함께 가진 ActionResult를 컨트롤러에 반환할 수 있습니다.

return new HttpStatusCodeResult(500, "Error message");

그런 다음 오류 콜백에서 다음을 수행합니다.

error: function (request, textStatus, errorThrown) {
    alert(request.statusText);
}

이 페이지에 따르면 헤더를 적용하기만 하면 됩니다.HTTP/1.0 500 Internal Server ErrorASP.net 페이지를 참조해 주세요.$.ajax이 오류를 검출하여 실행한다.error콜백 함수=]

이 이벤트는 200 이외의 응답 코드를 가진 응답에 대해 발생한다고 생각합니다.하지만 문서에서는 증거를 찾을 수 없어요

코드(웹 양식에서 작업)에서 이 작업을 수행하려면:

throw new HttpException(500, "Error message");

제안서를 보냅니다. 통제되고 통제되지 않는 예외로 작업합니다.

  public class CodeExceptionToHttpFilter : FilterAttribute, IExceptionFilter
{
    public CodeExceptionToHttpFilter()
    {
      Order = 2;
    }
    public void OnException(ExceptionContext filterContext)
    {
      var codeException = filterContext.Exception as CodeException;
      var response = filterContext.RequestContext.HttpContext.Response;
  response.StatusCode = (codeException == null)? 550: 551;
      response.ContentType = MediaTypeNames.Text.Plain;
      response.Charset = "utf-8";
      response.Write(filter.Exception.Message);
      filterContext.ExceptionHandled = true;
      response.TrySkipIisCustomErrors = true;
   }

}

자세한 내용은 블로그를 참조하십시오.http://rodrigopb.wordpress.com/2012/11/28/gestion-de-errores-en-peticiones-ajax-a-mvc/

언급URL : https://stackoverflow.com/questions/407651/how-do-you-trigger-the-error-callback-in-a-jquery-ajax-call-using-asp-net-mvc

반응형