현재 버전

spring 스프링 jsp 자바스크립트 javascript

스프링 ajax 데이터 컨트롤러 보내고 데이터 받기 질문이요


안녕하세요 제가 스프링 프로젝트 진행중인데

login.jsp에서 ajax로 user_id를 /get_base64Data  컨트롤러로 보내서

컨트롤러에서 db 까지 가서

db에 있는 user_id와  ajax에서 보낸 user_id가 일치하면

db에 있는 base64data를 login.jsp의 에서 받아서 사용하려고 합니다.


현재 login.jsp 의 ajax에서 데이터를 보내고 받는 과정은

login.jsp의 특정 버튼을 클릭하면 onclick="doget_Base64Data();" 으로 함수가 실행됩니다.

<form id="formId" onsubmit="return formSubmit();">
	<button onclick="doget_Base64Data();">버튼클릭</button>
</form>

해당 버튼을 클릭하면 아래 doget_Base64Data() 함수를 실행시킵니다.


<script>
	var allow_submit = false;
	
	function formSubmit()
	{
		if (!allow_submit) return false;
	}
</script>

<script>
	function doget_Base64Data(){
		var user_id = $("#user_id").val();

		$.ajax({
	        type: 'post',
	        url: "${root }user/get_base64Data",
	       	data : {"user_id" : user_id},
	       	datatype: 'json',
	        success: function (res) {
	       		if (res.code == 200) // 정상처리 됐다면
	        	{
	        		console.log('res.data : '+res.data);
	        		alert('정상처리');
	        		doMatchData();
	        		allow_submit = true;
	        	    $('#formId').trigger('submit');
	        	}
	        },
	        error: function (e) {
	        	alert(e.responseText);
	        	console.log(e.responseText);
	        }
	    });	
	}
</script>


그리고 get_base64Data 컨트롤러는 다음과 같습니다.

위에 @RequestMapping("/user") 더 있어서 user/get_base64Data로 잘들어갑니다.

@PostMapping("/get_base64Data")
public String get_base64Data(@RequestParam("user_id") String user_id , Model model) {
	String user_base64data = userService.getUserBase64Info(user_id);

	model.addAttribute("u_base64data",user_base64data);
	
	return user_base64data;
}


이렇게 제가 get_base64Data 컨트롤러에서

user_id가 잘 넘어가는걸 확인하고

그에 따라 user_base64data도 잘 받는걸 확인했습니다.

그런데 ajax의 에서 success 의 if (res.code == 200) 안으로 안들어오고

왜 error : function(e) 로 넘어가는걸까요?


참고로 console.log(e.responseText); 는


<!doctype html><html lang="ko"><head><title>HTTP 상태 404 – 찾을 수 없음</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP 상태 404 – 찾을 수 없음</h1><hr class="line" /><p><b>타입</b> 상태 보고</p><p><b>메시지</b> 파일 [&#47;WEB-INF&#47;views&#47;BA907GDF0gsdfjkgLKSGd9psfdgsdfgOSFDOS79GFsfglsgf7lgsfugsfo79fgSDUGFSFSE76sdJIKGHF7ofhbSFDglfgf9GFU9Ofd

KAe6zo40qUQ45iBCuPylAaDe&#42;QE7yBkA.jsp  ( 노란색이 base64data값인데 이 값은 제가 임의로 쳤습니다. )]을(를) 찾을 수 없습니다.</p><p><b>설명</b> Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.</p><hr class="line" /><h3>Apache Tomcat/9.0.37</h3></body></html>

이런식으로 나옵니다.


수정 이력

2020-10-26 15:28:24 에 아래 내용에서 변경 됨 #6

안녕하세요 제가 스프링 프로젝트 진행중인데

login.jsp에서 ajax로 user_id를 /get_base64FPData  컨트롤러로 보내서

컨트롤러에서 db 까지 가서

db에 있는 user_id와  ajax에서 보낸 user_id가 일치하면

db에 있는 base64data를 login.jsp의 에서 받아서 사용하려고 합니다.


현재 login.jsp 의 ajax에서 데이터를 보내고 받는 과정은

login.jsp의 특정 버튼을 클릭하면 onclick="doget_Base64Data();" 으로 함수가 실행됩니다.

<form id="formId" onsubmit="return formSubmit();">
	<button onclick="doget_Base64Data();">버튼클릭</button>
</form>

해당 버튼을 클릭하면 아래 doget_Base64Data() 함수를 실행시킵니다.


<script>
	var allow_submit = false;
	
	function formSubmit()
	{
		if (!allow_submit) return false;
	}
</script>

<script>
	function doget_Base64Data(){
		var user_id = $("#user_id").val();

		$.ajax({
	        type: 'post',
	        url: "${root }user/get_base64Data",
	       	data : {"user_id" : user_id},
	       	datatype: 'json',
	        success: function (res) {
	       		if (res.code == 200) // 정상처리 됐다면
	        	{
	        		console.log('res.data : '+res.data);
	        		alert('정상처리');
	        		doMatchData();
	        		allow_submit = true;
	        	    $('#formId').trigger('submit');
	        	}
	        },
	        error: function (e) {
	        	alert(e.responseText);
	        	console.log(e.responseText);
	        }
	    });	
	}
</script>


그리고 get_base64Data 컨트롤러는 다음과 같습니다.

위에 @RequestMapping("/user") 더 있어서 user/get_base64Data로 잘들어갑니다.

@PostMapping("/get_base64Data")
public String get_base64Data(@RequestParam("user_id") String user_id , Model model) {
	String user_base64data = userService.getUserBase64Info(user_id);

	model.addAttribute("u_base64data",user_base64data);
	
	return user_base64data;
}


이렇게 제가 get_base64Data 컨트롤러에서

user_id가 잘 넘어가는걸 확인하고

그에 따라 user_base64data도 잘 받는걸 확인했습니다.

그런데 ajax의 에서 success 의 if (res.code == 200) 안으로 안들어오고

왜 error : function(e) 로 넘어가는걸까요?


참고로 console.log(e.responseText); 는


<!doctype html><html lang="ko"><head><title>HTTP 상태 404 – 찾을 수 없음</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP 상태 404 – 찾을 수 없음</h1><hr class="line" /><p><b>타입</b> 상태 보고</p><p><b>메시지</b> 파일 [&#47;WEB-INF&#47;views&#47;BA907GDF0gsdfjkgLKSGd9psfdgsdfgOSFDOS79GFsfglsgf7lgsfugsfo79fgSDUGFSFSE76sdJIKGHF7ofhbSFDglfgf9GFU9Ofd

KAe6zo40qUQ45iBCuPylAaDe&#42;QE7yBkA.jsp  ( 노란색이 base64data값인데 이 값은 제가 임의로 쳤습니다. )]을(를) 찾을 수 없습니다.</p><p><b>설명</b> Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.</p><hr class="line" /><h3>Apache Tomcat/9.0.37</h3></body></html>

이런식으로 나옵니다.

2020-10-26 15:27:54 에 아래 내용에서 변경 됨 #5

안녕하세요 제가 스프링 프로젝트 진행중인데

login.jsp에서 ajax로 user_id를 /get_base64FPData  컨트롤러로 보내서

컨트롤러에서 db 까지 가서

db에 있는 user_id와  ajax에서 보낸 user_id가 일치하면

db에 있는 base64data를 login.jsp의 에서 받아서 사용하려고 합니다.


현재 login.jsp 의 ajax에서 데이터를 보내고 받는 과정은

login.jsp의 특정 버튼을 클릭하면 onclick="doget_Base64Data();" 으로 함수가 실행됩니다.

<form id="formId" onsubmit="return formSubmit();">
	<button onclick="doget_Base64Data();">버튼클릭</button>
</form>

해당 버튼을 클릭하면 아래 doget_Base64Data() 함수를 실행시킵니다.


<script>
	var allow_submit = false;
	
	function formSubmit()
	{
		if (!allow_submit) return false;
	}
</script>

<script>
	function doget_Base64Data(){
		var user_id = $("#user_id").val();

		$.ajax({
	        type: 'post',
	        url: "${root }user/get_base64Data",
	       	data : {"user_id" : user_id},
	       	datatype: 'json',
	        success: function (res) {
	       		if (res.code == 200) // 정상처리 됐다면
	        	{
	        		console.log('res.data : '+res.data);
	        		alert('정상처리');
	        		doMatchFinger();
	        		allow_submit = true;
	        	    $('#formId').trigger('submit');
	        	}
	        },
	        error: function (e) {
	        	alert(e.responseText);
	        	console.log(e.responseText);
	        }
	    });	
	}
</script>


그리고 get_base64Data 컨트롤러는 다음과 같습니다.

위에 @RequestMapping("/user") 더 있어서 user/get_base64Data로 잘들어갑니다.

@PostMapping("/get_base64Data")
public String get_base64Data(@RequestParam("user_id") String user_id , Model model) {
	String user_base64data = userService.getUserBase64Info(user_id);

	model.addAttribute("u_base64data",user_base64data);
	
	return user_base64data;
}


이렇게 제가 get_base64Data 컨트롤러에서

user_id가 잘 넘어가는걸 확인하고

그에 따라 user_base64data도 잘 받는걸 확인했습니다.

그런데 ajax의 에서 success 의 if (res.code == 200) 안으로 안들어오고

왜 error : function(e) 로 넘어가는걸까요?


참고로 console.log(e.responseText); 는


<!doctype html><html lang="ko"><head><title>HTTP 상태 404 – 찾을 수 없음</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP 상태 404 – 찾을 수 없음</h1><hr class="line" /><p><b>타입</b> 상태 보고</p><p><b>메시지</b> 파일 [&#47;WEB-INF&#47;views&#47;BA907GDF0gsdfjkgLKSGd9psfdgsdfgOSFDOS79GFsfglsgf7lgsfugsfo79fgSDUGFSFSE76sdJIKGHF7ofhbSFDglfgf9GFU9Ofd

KAe6zo40qUQ45iBCuPylAaDe&#42;QE7yBkA.jsp  ( 노란색이 base64data값인데 이 값은 제가 임의로 쳤습니다. )]을(를) 찾을 수 없습니다.</p><p><b>설명</b> Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.</p><hr class="line" /><h3>Apache Tomcat/9.0.37</h3></body></html>

이런식으로 나옵니다.

2020-10-26 14:27:48 에 아래 내용에서 변경 됨 #4

안녕하세요 제가 스프링 프로젝트 진행중인데

login.jsp에서 ajax로 user_id를 /get_base64FPData  컨트롤러로 보내서

컨트롤러에서 db 까지 가서

db에 있는 user_id와  ajax에서 보낸 user_id가 일치하면

db에 있는 base64data를 login.jsp의 에서 받아서 사용하려고 합니다.


현재 login.jsp 의 ajax에서 데이터를 보내고 받는 과정은

login.jsp의 특정 버튼을 클릭하면 onclick="doget_Base64Data();" 으로 함수가 실행됩니다.

<script>
	var allow_submit = false;
	
	function formSubmit()
	{
		if (!allow_submit) return false;
	}
</script>

<script>
	function doget_Base64Data(){
		var user_id = $("#user_id").val();

		$.ajax({
	        type: 'post',
	        url: "${root }user/get_base64Data",
	       	data : {"user_id" : user_id},
	       	datatype: 'json',
	        success: function (res) {
	       		if (res.code == 200) // 정상처리 됐다면
	        	{
	        		console.log('res.data : '+res.data);
	        		alert('정상처리');
	        		doMatchFinger();
	        		allow_submit = true;
	        	    $('#formId').trigger('submit');
	        	}
	        },
	        error: function (e) {
	        	alert(e.responseText);
	        	console.log(e.responseText);
	        }
	    });	
	}
</script>


그리고 get_base64Data 컨트롤러는 다음과 같습니다.

위에 @RequestMapping("/user") 더 있어서 user/get_base64Data로 잘들어갑니다.

@PostMapping("/get_base64Data")
public String get_base64Data(@RequestParam("user_id") String user_id , Model model) {
	String user_base64data = userService.getUserBase64Info(user_id);

	model.addAttribute("u_base64data",user_base64data);
	
	return user_base64data;
}


이렇게 제가 get_base64Data 컨트롤러에서

user_id가 잘 넘어가는걸 확인하고

그에 따라 user_base64data도 잘 받는걸 확인했습니다.

그런데 ajax의 에서 success 의 if (res.code == 200) 안으로 안들어오고

왜 error : function(e) 로 넘어가는걸까요?


참고로 console.log(e.responseText); 는


<!doctype html><html lang="ko"><head><title>HTTP 상태 404 – 찾을 수 없음</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP 상태 404 – 찾을 수 없음</h1><hr class="line" /><p><b>타입</b> 상태 보고</p><p><b>메시지</b> 파일 [&#47;WEB-INF&#47;views&#47;BA907GDF0gsdfjkgLKSGd9psfdgsdfgOSFDOS79GFsfglsgf7lgsfugsfo79fgSDUGFSFSE76sdJIKGHF7ofhbSFDglfgf9GFU9Ofd

KAe6zo40qUQ45iBCuPylAaDe&#42;QE7yBkA.jsp  ( 노란색이 base64data값인데 이 값은 제가 임의로 쳤습니다. )]을(를) 찾을 수 없습니다.</p><p><b>설명</b> Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.</p><hr class="line" /><h3>Apache Tomcat/9.0.37</h3></body></html>

이런식으로 나옵니다.

2020-10-26 14:23:11 에 아래 내용에서 변경 됨 #3

안녕하세요 제가 스프링 프로젝트 진행중인데

login.jsp에서 ajax로 user_id를 /get_base64FPData  컨트롤러로 보내서

컨트롤러에서 db 까지 가서

db에 있는 user_id와  ajax에서 보낸 user_id가 일치하면

db에 있는 base64data를 login.jsp의 에서 받아서 사용하려고 합니다.


현재 login.jsp 의 ajax에서 데이터를 보내고 받는 과정은

login.jsp의 특정 버튼을 클릭하면 onclick="doget_Base64Data();" 으로 함수가 실행됩니다.

<script>
	var allow_submit = false;
	
	function formSubmit()
	{
		if (!allow_submit) return false;
	}
</script>

<script>
	function doget_Base64Data(){
		var user_id = $("#user_id").val();

		$.ajax({
	        type: 'post',
	        url: "${root }user/get_base64Data",
	       	data : {"user_id" : user_id},
	       	datatype: 'json',
	        success: function (res) {
	       		if (res.code == 200) // 정상처리 됐다면
	        	{
	        		console.log('res.data : '+res.data);
	        		alert('정상처리');
	        		doMatchFinger();
	        		allow_submit = true;
	        	    $('#formId').trigger('submit');
	        	}
	        },
	        error: function (e) {
	        	alert(e.responseText);
	        	console.log(e.responseText);
	        }
	    });	
	}
</script>


그리고 get_base64Data 컨트롤러는 다음과 같습니다.

위에 @RequestMapping("/user") 더 있어서 user/get_base64Data로 잘들어갑니다.

@PostMapping("/get_base64Data")
public String get_base64Data(@RequestParam("user_id") String user_id , Model model) {
	String user_base64data = userService.getUserBase64Info(user_id);

	model.addAttribute("u_base64data",user_base64data);
	
	return user_base64data;
}


이렇게 제가 get_base64Data 컨트롤러에서

user_id가 잘 넘어가는걸 확인하고

그에 따라 user_base64data도 잘 받는걸 확인했습니다.

그런데 ajax의 에서 success 의 if (res.code == 200) 안으로 안들어오고

왜 error : function(e) 로 넘어가는걸까요?


참고로 console.log(e.responseText); 는


<!doctype html><html lang="ko"><head><title>HTTP 상태 404 – 찾을 수 없음</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP 상태 404 – 찾을 수 없음</h1><hr class="line" /><p><b>타입</b> 상태 보고</p><p><b>메시지</b> 파일 [&#47;WEB-INF&#47;views&#47;BA907GDF0gsdfjkgLKSGd9psfdgsdfgOSFDOS79GFsfglsgf7lgsfugsfo79fgSDUGFSFSE76sdJIKGHF7ofhbSFDglfgf9GFU9Ofd

KAe6zo40qUQ45iBCuPylAaDe&#42;QE7yBkA.jsp  (base64data는 제가 임의로 쳤습니다. )]을(를) 찾을 수 없습니다.</p><p><b>설명</b> Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.</p><hr class="line" /><h3>Apache Tomcat/9.0.37</h3></body></html>

이런식으로 나옵니다.

2020-10-26 14:21:40 에 아래 내용에서 변경 됨 #2

안녕하세요 제가 스프링 프로젝트 진행중인데

login.jsp에서 ajax로 user_id를 /get_base64FPData  컨트롤러로 보내서

컨트롤러에서 db 까지 가서

db에 있는 user_id와  ajax에서 보낸 user_id가 일치하면

db에 있는 base64data를 login.jsp의 에서 받아서 사용하려고 합니다.


현재 login.jsp 의 ajax에서 데이터를 보내고 받는 과정은

login.jsp의 특정 버튼을 클릭하면 onclick="doget_Base64Data();" 으로 함수가 실행됩니다.

<script>
	var allow_submit = false;
	
	function formSubmit()
	{
		if (!allow_submit) return false;
	}
</script>

<script>
	function doget_Base64Data(){
		var user_id = $("#user_id").val();

		$.ajax({
	        type: 'post',
	        url: "${root }user/get_base64Data",
	       	data : {"user_id" : user_id},
	       	datatype: 'json',
	        success: function (res) {
	       		if (res.code == 200) // 정상처리 됐다면
	        	{
	        		console.log('res.data : '+res.data);
	        		alert('정상처리');
	        		doMatchFinger();
	        		allow_submit = true;
	        	    $('#formId').trigger('submit');
	        	}
	        },
	        error: function (e) {
	        	alert(e.responseText);
	        	console.log(e.responseText);
	        }
	    });	
	}
</script>


그리고 get_base64Data 컨트롤러는 다음과 같습니다.

위에 @RequestMapping("/user") 더 있어서 user/get_base64Data로 잘들어갑니다.

@PostMapping("/get_base64Data")
public String get_base64Data(@RequestParam("user_id") String user_id , Model model) {
	String user_base64data = userService.getUserBase64Info(user_id);

	model.addAttribute("u_base64data",user_base64data);
	
	return user_base64data;
}


이렇게 제가 get_base64Data 컨트롤러에서

user_id가 잘 넘어가는걸 확인하고

그에 따라 user_base64data도 잘 받는걸 확인했습니다.

그런데 ajax의 에서 success 의 if (res.code == 200) 안으로 안들어오고

왜 error : function(e) 로 넘어가는걸까요?


참고로 console.log(e.responseText); 는


<!doctype html><html lang="ko"><head><title>HTTP 상태 404 – 찾을 수 없음</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP 상태 404 – 찾을 수 없음</h1><hr class="line" /><p><b>타입</b> 상태 보고</p><p><b>메시지</b> 파일 [&#47;WEB-INF&#47;views&#47;BA907GDF0gsdfjkgLKSGd9psfdgsdfgOSFDOS79GFsfglsgf7lgsfugsfo79fgSDUGFSFSE (임의로 쳤어요 그냥)

KAe6zo40qUQ45iBCuPylAaDe&#42;QE7yBkA.jsp]을(를) 찾을 수 없습니다.</p><p><b>설명</b> Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.</p><hr class="line" /><h3>Apache Tomcat/9.0.37</h3></body></html>

이런식으로 나옵니다.

2020-10-26 14:20:38 에 아래 내용에서 변경 됨 #1

안녕하세요 제가 스프링 프로젝트 진행중인데

login.jsp에서 ajax로 user_id를 /get_base64FPData  컨트롤러로 보내서

컨트롤러에서 db 까지 가서

db에 있는 user_id와  ajax에서 보낸 user_id가 일치하면

db에 있는 base64data를 login.jsp의 에서 받아서 사용하려고 합니다.


현재 login.jsp 의 ajax에서 데이터를 보내고 받는 과정은

login.jsp의 특정 버튼을 클릭하면 onclick="doget_Base64Data();" 으로 함수가 실행됩니다.

<script>
	var allow_submit = false;
	
	function formSubmit()
	{
		if (!allow_submit) return false;
	}
</script>

<script>
	function doget_Base64Data(){
		var user_id = $("#user_id").val();

		$.ajax({
	        type: 'post',
	        url: "${root }user/get_base64Data",
	       	data : {"user_id" : user_id},
	       	datatype: 'json',
	        success: function (res) {
	       		if (res.code == 200) // 정상처리 됐다면
	        	{
	        		console.log('res.data : '+res.data);
	        		alert('정상처리');
	        		doMatchFinger();
	        		allow_submit = true;
	        	    $('#formId').trigger('submit');
	        	}
	        },
	        error: function (e) {
	        	alert(e.responseText);
	        	console.log(e.responseText);
	        }
	    });	
	}
</script>


그리고 get_base64Data 컨트롤러는 다음과 같습니다.

위에 @RequestMapping("/user") 더 있어서 user/get_base64Data로 잘들어갑니다.

@PostMapping("/get_base64Data")
public String get_base64Data(@RequestParam("user_id") String user_id , Model model) {
	String user_base64data = userService.getUserBase64Info(user_id);

	model.addAttribute("u_base64data",user_base64data);
	
	return user_base64data;
}


이렇게 제가 get_base64Data 컨트롤러에서

user_id가 잘 넘어가는걸 확인하고

그에 따라 user_base64data도 잘 받는걸 확인했습니다.

그런데 ajax의 에서 success 의 if (res.code == 200) 안으로 안들어오고

왜 error : function(e) 로 넘어가는걸까요?