ajax POST 시 주의사항

이기원·2021년 4월 30일
0

Web 공부

목록 보기
3/5

간혹 ajax 통신으로 data 배열을 전송할때 올바른 형식으로 보냈는데도, BackEnd 단에서 이 데이터를 읽지 못하는 현상이 있다.

var dataSet = {
	"userName" : userName,
	"userID" : userID,
	"userPassword" : userPassword,
	"userDepartment" : userDepartment,
	"userNum" : userNum
};
$.ajax({
	url: "/updateRow",
	method:"POST",
	data: dataSet,
	traditional : true,
	success: function(response){
		console.log(response);

	},
	error : function(error){
		console.log(error);
	}

});

예를 들면 이러한 스크립트로 데이터를 보내서,

@ResponseBody
@RequestMapping(value = "/updateRow", method = RequestMethod.POST )
public String updateRow(@RequestParam(value="userName") String[] user_name,
		@RequestParam(value="userID") String[] user_ID,
		@RequestParam(value="userPassword") String[] Password,
		@RequestParam(value="userDepartment") String[] Department,
		@RequestParam(value="userNum") String[] userNum ) throws Exception
{
	
	Map param = new HashMap();
	for(int i=0;i<user_name.length;i++)
	{
		param.clear();
		param.put("userName",user_name[i]);
		param.put("userID",user_ID[i]);
		param.put("userPassword",Password[i]);
		param.put("userDepartment",Department[i]);
		param.put("userNum",userNum[i]);
		oracle.selectOne("com.nanum.mes.service.dao.BoardDAO.updateRow",param);
	}
	return "Success";
}

이렇게 컨트롤러에서 받는다고 쳤을때, ajax 모듈에 traditional 옵션이 없으면, 데이터를 전혀 읽어오지 못하는 현상이 있더라... 배열로 파라미터를 받을때는 traditional : true를 설정해줄것.. (이걸 하지 않으면 배열을 못읽음)

profile
초급 / 전산 / MES

0개의 댓글