반응형
Ajax파라미터 통신
프론트에서 보내는 방법은 아래와 같이 여러가지가 있다.
data : JSON.stringify({emailAdres:$("#emailAdres").val()})
data : {emailAdres:$("#emailAdres").val(), userId:$("#userId").val()}
url : "/login/findid_check?emailAdres="+$("#emailAdres").val()
백엔드에서 받는 방법은 아래와 같이 여러가지가 있다.
@RequestBody Map<String, Object> paramMap
@RequestParam("emailAdres") String emailAdres
@RequestParam Map<String, Object> paramMap
@ModelAttribute("userVO") UserVO userVO
1. Ajax통신 예제 (Json으로 변환해서전달)
- 프론트엔드
- data를 json형태로 백엔드에 전송할경우 백엔드는 @RequestBody를 사용해서 받는다.
- @RequestBody는 Map이되는 VO가되는 상관없다.
- return 의경우 @ResponseBody 를 선언해야 오류없이 프론트로 전달된다.
//아래처럼 기본적인 Ajax구조로 처리할수있다.
$.ajax({
type : 'POST',
url : "/login/findid_check",
data : JSON.stringify({emailAdres:$("#emailAdres").val()})
async : false,
contentType : "application/json",
dataType : "json",
beforeSend : function(xhr){
console.log('실행전 처리영역');
},
success:function(data, textStatus){
if(data.result == "SUCCESS"){
console.log("성공");
}else if(data.result == "FAIL"){
console.log("실패");
}else{
console.log("에러");
}
},error:function(r,s,e){
console.log(e);
}
});
//다른방식의 Ajax구조로도 처리가능하다.
$.ajax({
type : 'POST',
url : "/login/findid_check",
data : JSON.stringify({emailAdres:$("#emailAdres").val()})
async : false,
contentType : "application/json",
dataType : "json",
}).done(function(data) {
if(data.result == "SUCCESS"){
console.log("성공");
}else if(data.result == "FAIL"){
console.log("실패");
}else{
console.log("에러");
}
}).fail(function (jqXHR, textStatus, errorThrown) {
//
});
- 백엔드
- (@RequestBody Map<String, Object> paramMap 형식으로 백엔드에서 받는다.
@RequestMapping(value="/login/findid_check", method={RequestMethod.POST})
@ResponseBody
public Map<String, Object> findIdCheck(@RequestBody Map<String, Object> paramMap
, HttpServletRequest request, HttpServletResponse response) throws Exception{
Map<String,Object> result = new HashMap<String,Object>();
try{
int resultCount = loginService.findIdCheck(paramMap);
if(resultCount > 0) {
result.put("result", "SUCCESS");
} else {
result.put("result", "FAIL");
}
} catch (Exception e) {
result.put("result", "ERROR");
throw new ProcessingException(e.getMessage(), ErrorCode.UNKNOWN_ERROR);
}
return result;
}
2. Ajax통신 예제 (파라미터로 전달)
- 프론트엔드
- data를 URL에 파라미터로 보낼경우
$.ajax({
type : 'GET',
url : "/login/findid_check?emailAdres="+$("#emailAdres").val(),
async : false,
contentType : "application/json",
dataType : "json",
beforeSend : function(xhr){
console.log('실행전 처리영역');
},
success:function(data, textStatus){
if(data.result == "SUCCESS"){
console.log("성공");
}else if(data.result == "FAIL"){
console.log("실패");
}else{
console.log("에러");
}
},error:function(r,s,e){
console.log(e);
}
});
- 백엔드
- @RequestParam("emailAdres") String emailAdres 형식으로 백엔드에서 받는다.
@RequestMapping(value="/login/findid_check", method={RequestMethod.POST, RequestMethod.GET})
@ResponseBody
public Map<String, Object> findIdCheck(@RequestParam("emailAdres") String emailAdres
, HttpServletRequest request, HttpServletResponse response) throws Exception{
Map<String,Object> result = new HashMap<String,Object>();
try{
int resultCount = loginService.findIdCheck(emailAdres);
if(resultCount > 0) {
result.put("result", "SUCCESS");
} else {
result.put("result", "FAIL");
}
} catch (Exception e) {
result.put("result", "ERROR");
throw new ProcessingException(e.getMessage(), ErrorCode.UNKNOWN_ERROR);
}
return result;
}
3. Ajax통신 예제 (또다른 json형태로 전송)
- 프론트엔드
- data를 아래와 같이 보낸다.
$.ajax({
type : 'POST',
url : "/login/findid_check",
data : {emailAdres:$("#emailAdres").val(), userId:$("#userId").val()},
async : false,
contentType : "application/json",
dataType : "json",
beforeSend : function(xhr){
console.log('실행전 처리영역');
},
success:function(data, textStatus){
if(data.result == "SUCCESS"){
console.log("성공");
}else if(data.result == "FAIL"){
console.log("실패");
}else{
console.log("에러");
}
},error:function(r,s,e){
console.log(e);
}
});
- 백엔드
- @RequestParam Map<String, Object> paramMap 형식으로 백엔드에서 받는다.
@RequestMapping(value="/login/findid_check", method={RequestMethod.POST, RequestMethod.GET})
@ResponseBody
public Map<String, Object> findIdCheck(@RequestParam Map<String, Object> paramMap
, HttpServletRequest request, HttpServletResponse response) throws Exception{
Map<String,Object> result = new HashMap<String,Object>();
try{
int resultCount = loginService.findIdCheck(paramMap);
if(resultCount > 0) {
result.put("result", "SUCCESS");
} else {
result.put("result", "FAIL");
}
} catch (Exception e) {
result.put("result", "ERROR");
throw new ProcessingException(e.getMessage(), ErrorCode.UNKNOWN_ERROR);
}
return result;
}
※.기타
- ajax구조에 swal메시지 플러그인과 spring:message 등의 여러가지 기능을 추가하여 사용할수 있다.
반응형
'개발 > 기타' 카테고리의 다른 글
[스크립트] google map api 반경표시 (by 주소검색) (0) | 2023.08.01 |
---|---|
[Json] 배열형태의값을 서버로 전달 (Jquery by Spring) (0) | 2023.07.18 |
[스크립트] 개인정보 범위와 마스킹예제 (이름/주민번호 등) (0) | 2023.06.23 |
[RTSP] nodejs로 rtsp 실시간 스트리밍 서버구축 (0) | 2023.05.04 |
[JQuery] select2 jquery 플러그인 사용하기 (1) | 2023.04.24 |