2014-11-08 2 views
1

AJAX 요청에 응답하고 있지만 응용 프로그램 오류가 있습니다. (예 : 데이터 검증에 실패했습니다). 사용자에게 알리는 방법은 무엇입니까?상태 코드를 반환하고 클라이언트 쪽에서 메시지를 받거나 클라이언트 쪽에서 직접 오류 메시지를 보내십시오.

1. 반환 상태 코드는 다음 JS에 의해

$.ajax(options).done(function(response){ 
    if (response.status === 1){ 
     // no problem, do next action 
    } else { 
     alert (messages[response.status]); 
    } 
}); 

var messages = { 
    '0': 'Server Error', 
    '-1': 'Invalid Data', 
    ... 
} 

2. 반환 상태 코드 메시지를 받고, 메시지 :

$.ajax(options).done(function(response){ 
    if (response.status === 1){ 
     // no problem, do next action 
    } else { 
     alert (response.message); 
    } 
}); 

더 하나? 또는 가장 좋은 방법은 무엇입니까? 우리에게는 이중 언어 응용 프로그램이 있습니다.

개인적으로는 처음에는 더 좋습니다. 적어도 내 JS 파일에 오류 메시지를 정의해야하기 때문에 서버 오류가 발생합니다. (AJAX 요청이 실패한 경우, jQuery .fail()) 한 번 수행해야한다면 같은 위치에서 모든 메시지를 모으는 것이 좋습니다.

+0

옵션 1을 사용하는 경우 기본 메시지에 액세스 할 수있는 방법을 사용자에게 제공하십시오. – Kolban

+0

@Kolban : 나는 당신이하는 것을 얻을 수 없습니다. 좀 더 설명해 주시겠습니까? – mrdaliri

+1

첫 번째 해결 방법은 자신의 메시지를 제공하여 ajax 호출에서 반환 된 기본 메시지를 "마스킹"하는 것입니다. 이는 훌륭하며이 문제에 대한 기술적이지 않은 맥락을 제공합니다. 그러나 기본 응답 메시지 (그것이 무엇이든간에)에서 사용할 수있는 "지식"도 잃어 버리고 있습니다. 두 가지 스타일의 메시지를 모두 제공하는 것이 가장 이상적입니다. 첫 번째 및 기본 메시지는 명확한 사용자 소모품 메시지이지만 추가적으로 필요한 경우 사용자가 기본 메시지를 "얻을 수있는"방법을 제공합니다. – Kolban

답변

0

일반적으로 저는 항상 두 번째 것을 가르치고 연습했습니다. 클라이언트 쪽 유효성 검사는 좋지만 신뢰할 수는 없습니다. 클라이언트가 악의적 인 경우에도 클라이언트가이를 편집하여 혼란을 일으킬 수 있기 때문입니다.

서버 쪽 유효성 검사를 수행하고 거기에서 메시지를 반환하는 것이 가장 좋습니다. 이렇게하면 사용자와 백엔드가 사용자가 망할 수없는 완전한 제어를 제공합니다. 아약스 호출에서 가져야 할 주요 오류는 오류 콜백 함수에서 일종의 "내부 서버 오류"입니다. 사용자가이 정보를 얻으면 서버를 읽을 수 없으므로 어쨌든 호출이 실패합니다. 이 메시지 이외의 메시지는 서버에 성공적으로 도달하여이 메시지의 출처 인 모든 전달 된 데이터에 대해 내부 유효성 검사를 수행했음을 의미합니다.

정말로 원한다면 검증을 두 번 할 수 있습니다. 입력이 완전히 잘못된 형식 인 경우 호출이 발생하지 않는 멋진 jquery 유효성 검사를 수행하십시오. 그러나 서버에 연결되면 명시 적으로 유효성이 검사 될 때까지 전달 된 모든 입력을 신뢰할 수 없다는 인상을 받아야합니다.

희망 사항. 건배.

+0

감사합니다. 데이터 검증이 그 예입니다. 모든 앱 관련 오류 또는 메시지를 의미합니다. – mrdaliri

+0

연습은 여전히 ​​의미합니다. 서버에서 ajax 호출을 통해 수신되는 메시지를 기반으로 진정한 메시지가 필요하다면 서버가 자바 스크립트 나 jquery보다 정확한 응답 메시지를 제공한다는 것이 훨씬 더 신뢰할 수 있습니다. –

관련 문제