Ajax 통신 url 보낼때 쿼리스트링도 같이 못보내나요..?
조회수 2880회
안녕하세요! 제가 스프링 MVC 패턴을 이용한 영화예매프로그램 개발중에 있는데요
**/* 평점 등록 버튼 누르면 댓글 등록되게하기 ! 비로그인시 -> 로그인 유도 팝업창
로그인되있을시 -> moviescore insert하기!
insert와 동시에 moviescore select 해서 화면에 바로 뿌려주기!
*/**
$("#btn_register").click(function(){
var currentScore = $('#div_rating').raty('score'); //별점
var cheklog = $("#loginid").val(); //로그인 아이디
var ms_mid = $("#ms_mid").val(); //영화 m_number 받아오기
if(cheklog == null || cheklog==""){
alert("로그인안됐어!");
}
else{
//alert("로그인했네?");
var params =$("#formId").serialize();
$.ajax({
url:"detailMovie.com?m_number='"+ms_mid+"'",
data:params,
success:function(data){
alert(data);
}
});`여기에 코드를 입력하세요`
//$("#formId").attr("action","insertMovieScore.com");
}
});
이렇게 url:url:"detailMovie.com?m_number='"+ms_mid+"'" 이부분을 이렇게 해야하는 이유가 detailMovie.com을 하면 컨트롤러에서 m_number를 매개변수료 요구하거든요 (db 쿼리할때 where 조건문으로 m_number에 맞는 데이터를 뽑아오기 때문에 ) 저는 페이지 이동없이 ajax를 써서 평점을 등록하면 바로 그 밑에 등록한 평점을 갱신하려하는데.. 이부분에서 지금 막혀있어요 ㅠㅠ 이렇게 하면 평점이 insert는 되는데 select해서 다시 가져올때 updateMovie.com부분에서 m_number가 null로 받아와서 상세페이지에서 정보를 못뽑아줘요 ㅠㅠㅠ 이걸 어떻게 처리해야할가요...도와주세요ㅠㅠ
이부분이 detailMove.com을 요청했을때 오는 Controller 부분이구,
@RequestMapping("/detailMovie.com")
public ModelAndView getMovie(@RequestParam(value="m_number", defaultValue="1") int m_number,HttpServletRequest request,HttpServletResponse response, HttpSession session){
ModelAndView mav = new ModelAndView();
System.out.println("디테일1 : "+request.getAttribute("m_number"));
if(request.getAttribute("m_number")!=null && !request.getAttribute("m_number").equals(""))
{
//System.out.println("에러직전");
m_number = Integer.parseInt(request.getAttribute("m_number").toString());
System.out.println("디테일2 : "+m_number);
}
mav.addObject("m",dao.getMovie(m_number));
return mav;
}
이부분이 insertMovieScore.com을 했을때 오는 컨트롤러 부분이예요!
@RequestMapping("/insertMovieScore.com")
public ModelAndView submit(MovieScoreVo ms,HttpServletRequest request,HttpSession session,HttpServletResponse response){
ModelAndView mav = new ModelAndView("redirect:/detailMovie.com");
int re = dao.insertMovieScore(ms);
request.setAttribute("m_number", ms.getMs_mid());
List<MovieScoreVo> list = dao.listMovieScore();
String json = "[";
json 만들어서 보내는부분
json += "]";
}
try{
response.setContentType("text/plain"); //plain json형태1!!!!!!
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.write(json);
out.flush();
out.close();
}catch(Exception e){System.out.println(e.getMessage());}
return mav;
}
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
잘 될텐데 이상하네요.
혹시 모르니
url:"detailMovie.com?m_number='"+ms_mid+"'",
이 부분을
url: "detailMovie.com?m_number=" + ms_mid,
이렇게 고쳐보세요.
제가 테스트한 소스 첨부하니 참고하세요.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>test</title> <script src="/resources/js/jquery-1.12.4.js"></script> </head> <body> <h2>ajax test</h2> <p>watch the console</p> <p>response: <span style="color: red" id="result"></span></p> <script> $.ajax({ url: '/hello.data?a=1', data: 'b=2&c=3', dataType: 'json', success: function(data) { console.debug('success'); $('#result').text(data.message); } }) </script> </body> </html>
아래는 크롬 개발자도구 캡쳐입니다:
댓글 입력