programing

데이터 테이블 에이잭스 예외 후 사용자 지정 오류 메시지

powerit 2023. 9. 5. 20:50
반응형

데이터 테이블 에이잭스 예외 후 사용자 지정 오류 메시지

데이터 표 1.10.12를 사용하여 데이터 표를 표시합니다.사용자는 서버에서 오류를 발생시키는 입력 매개 변수를 지정할 수 있습니다.사용자가 설정을 수정할 수 있도록 적절한 오류 메시지가 표시되어야 하지만, 유일한 오류 옵션은 다음과 같습니다.

  1. 경고에 다음과 같은 일반 오류를 표시합니다. "DataTables warning: table id=tableTable - Ajax error.이 오류에 대한 자세한 내용은 http://datatables.net/tn/7 을 참조하십시오."
  2. 브라우저 콘솔에 일반 오류 표시
  3. 행을 반환하지 않도록 서버를 수정합니다. 즉, 자동으로 실패합니다.

데이터 테이블 Ajax 요청이 실패한 후 사용자 지정 오류를 표시하는 방법을 아는 사람이 있습니까?

다음 코드 샘플은 데이터 테이블 설명서에서 가져온 것입니다.데이터 테이블은 Ajax 호출을 처리하고 성공 및 오류를 처리합니다.

$(document).ready(function() {
    $('#example').DataTable( {
        "ajax": '../ajax/data/arrays.txt'
    } );
} );

제가 목록에 추가할 수 있는 네 번째 옵션은 데이터 테이블 소스 코드를 수정하여 오류 응답을 직접 처리하는 것입니다.저는 별로 좋아하지 않습니다.

이 질문은 2015년에 던졌지만 답을 얻지 못했습니다.참조: 서버예외 표시

agax 속성에 개체를 전달하는 경우 jQuery.ajax() 오류 메서드를 재정의할 수 있습니다.

$(document).ready(function () {
    $('#example').DataTable({
        ajax: {
            url: '../ajax/data/arrays.txt',
            error: function (jqXHR, textStatus, errorThrown) {
                // Do something here
            }
        }
    });
});

https://datatables.net/reference/option/ajax#object

그러면 의 표준 오류 메시지가 중지됩니다.alert상자에 담다

jQuery.jax()의 성공 메서드는 DataTables에서 사용되므로 이 메서드를 재정의하지 않는 것이 좋습니다.

아래 예와 같이 사용자 지정 오류 메시지를 전체적으로 구현할 수 있습니다.

$(document).ready(function() {
        $.fn.dataTable.ext.errMode = () => alert('Error while loading the table data. Please refresh');
        $('#example').DataTable( {
            "ajax": '../ajax/data/arrays.txt'
        });
    });

누군가가 여전히 해결책을 찾고 있을 때를 대비해 대답하는 것.

저의 경우, 저는 다음과 같이 했습니다.

  1. 서버 측 집합에서DataTablesOutput object.setError("ErrorMsg")
  2. 나의 js 메소드$.fn.dataTable.ext.errMode = 'none';실수를 피하기 위해popup.
  3. 오류가 발생했습니다.div내 페이지에서 사용자 지정 오류 메시지를 표시합니다.
  4. 오류를 처리하기 위해 아래를 내 js 메소드에 추가했습니다.

    $('#myDataTable')
            .on('error.dt',
                function(e, settings, techNote, message) {//Logic to set the div innertext 
                 }
    
     try {
     $.ajax({
       -------
       -------
    success: function (data){
         //ShowDataTable is a js Function which takes ajax response data and display it.
           ShowDataTable(data);
    },
      //this error will catch server-side error if request fails
      error: function (xhr, textStatus, errorThrown) {
         alert(errorThrown);
         ShowDataTable(null);
       } 
      })

     }
    //this catch block will catch javascript exceptions,
    catch (Error) {
                if (typeof console != "undefined") {
                    console.log(Error);
                    ShowDataTable(null);                    
                    alert(Error);
                 }
              }

편집

오류를 허용하지만(예: 백엔드 시스템을 변경하여 오류를 수정할 수 없는 경우) 최종 사용자에게 경고() 메시지가 표시되지 않도록 하려면 DataTables의 오류 보고 메커니즘을 변경하여 경고 대신 Javascript 오류를 브라우저의 콘솔에 던질 수 있습니다.이 작업은 다음을 사용하여 수행할 수 있습니다.

$.fn.dataTable.ext.errMode = 'throw';

언급URL : https://stackoverflow.com/questions/38886297/custom-error-message-after-datatables-ajax-exception

반응형