2012-10-22 4 views
1

jQuery ajax를 사용하여 서버에 대한 요청을하고 있습니다. 내용이로드 된 후 몇 가지 유효성 검사를 추가해야합니다 (오류 처리). 가장 쉬운 방법은 success() 콜백에 유효성 검사를 추가하는 것입니다. 그러나 이미 구현 된 모든 구현에서 해당 콜백을 구현해야합니다. 성공 콜백을 연장 할 수있는 방법이 있습니까? 콜백 코드의 나머지 부분보다 먼저 호출 될 것입니까? 이렇게하면 각 성공에 대한 유효성을 한 곳에서 추가 할 수 있고 성공 콜백이 호출 될 때마다 실행될 수 있습니다.확장 Jquery ajax 완료 함수

나는 변환기를 preFilters 시도했지만, 내 요구에 맞지 않습니다.

+0

유효성 검사를 복사하여 붙여 넣어야한다는 사실은 조금 이상하게 들리지만 사실이 아닙니다. 어쩌면 프로세스를 좀 더 추상화하고 공통점을 추출해야 할지도 모릅니다. – Styxxy

+0

그럴 것이라고 생각하지만 모든 아약스 콜을 리팩토링해야합니다. (그런데, 나는 애플 리케이션에서 182 콜을 가지고있다). – user1766688

답변

1

와 AJAX 요청에 대한 기본 값을 설정할 수 있습니다

jQuery를 1.5으로 설정 성공 기능의 배열을 받아 들일 수 있습니다. 각 함수가 순서대로 호출됩니다. 당신은 여전히 ​​ 일부 코드를 수정해야합니다 있지만

그래서,이 같은 일이

$.ajax(url, { 
    success: [ 
     commonfunction, 
     function(...){ /* code */ } 
    ], 
}); 

을 작동합니다.

+0

. 이것은 내 문제의 일부를 해결하고 데이터 테이블 같은 다른 라이브러리를 사용하며 AJAX를 사용합니다. 도서관을위한 길을 찾을거야. 잠시 동안 배열을 적용하고 아약스를위한 새로운 레벨을 만들 것입니다. 이것은 $ .AJAX를 호출하는 대신에 단순히 내 메서드를 사용하고 ajax를 사용하는 $ .myAjax를 만드는 것입니다. – user1766688

0
+0

기본 성공을 설정하고 구현이 새로운 성공을 설정하면 둘 다 실행됩니까? – user1766688

+0

@ user1766688 예. 적어도 .ajaxSuccess의 경우. 그러나'.ajaxSuccess'로 등록 된 함수는 AJAX 요청의 성공 함수 뒤에 * 실행됩니다. 덕분에 – dualed