2016-06-24 2 views
0

jquery.when을 사용하여 아약스 호출을 구현하려고하는데이 호출을 제출할 때 400 개의 잘못된 요청이 발생합니다. 내 아약스에서 잘못하고있는 위치가 확실하지 않습니다. 이 고정에 call..Need 도움 ..Ajax Jquery Post 호출이 400 (잘못된 요청)이 됨

submitHandler:function(form){ 
     var emailSub = $("#emailSubTxtArea").val(); 
     var emailBody = $("#emailBodyTxtArea").val(); 
     if(confirm("You are about to send Email Communication, Are you sure..?")){ 
     $.ajax({ 
      type: "POST", 
      url: $("#applicationUrl").val() +"/web/utilities/sendEmailMessage", 
      dataType: "json", 
      //cache:false, 
      contentType: "application/json; charset=utf-8", 
      data:JSON.stringify({emailSubject : emailSub,emailMsg : emailBody}), 
      success:function(data) 
      { 
       console.log("Sending Email Notification was success."); 
      }, 
      error: function(x, t, m) { 
       console.trace(); 
       if (!(console == 'undefined')) { 
       console.log("ERROR: " + x + t 
         + m); 
       } 
       } 
     }); 
    } 

내 컨트롤러 코드 :

@RequestMapping(value="/sendEmailMessage",method=RequestMethod.POST) 
    public ModelAndView sendEmailCommunication(@RequestParam("emailSubject") String emailSubject,@RequestParam("emailMsg") String emailBody,HttpServletRequest request){ 
     ModelAndView view = null; 
     StringBuffer sMsg = new StringBuffer(); 
     StringBuffer eMsg = new StringBuffer(); 
     boolean isAdmin = false; 
     try{ 
     String loggedInUser = request.getHeader("sm_user").trim(); 
     isAdmin = getUserAdminRights(request); 
     if(isAdmin){ 
      boolean status = emailService.sendEmailCommuncation(emailSubject,emailBody); 
      if(status){ 
       sMsg.append(" Sending SiteMinder Notification Email was Success."); 
      } 
      else{ 
       eMsg.append(" Oops! Something went wrong while sending Email Notification. Pls check logs"); 
      } 
     } 
     else{ 
      view = new ModelAndView("redirect:/web/utilities/not_authorized"); 
      return view; 
     } 
     } 
     catch(Exception ex){ 
      ex.printStackTrace(); 
      eMsg.append("Oops! Something went wrong while sending Email Notification. Pls check logs"); 
     } 
     view = new ModelAndView("EmailCommunication"); 
     view.addObject("isAdmin", isAdmin); 
     view.addObject("sMsg", sMsg.toString()); 
     view.addObject("eMsg", eMsg.toString()); 
     return view; 
    } 

환호들 ...

+0

당신은'/ 웹/유틸리티/sendEmailMessage' 우리가 귀하의 질문에 대답 할 수없는 무엇을하고 있는지 보지 않고, 그래서 400 응답에 게시 된 서버입니다. –

+0

@Barrett, 컨트롤러 코드를 추가했습니다 ... pls는 내가 어디에서 잘못하고 있는지 알려주 ... –

+0

이 데이터를 사용하여 문자열을 지정할 필요가 없습니다. {emailSubject : emailSub, emailMsg : emailBody} – Vinie

답변

0

아주 간단한

submitHandler:function(form){ 

     if(confirm("You are about to send Email Communication, Are you sure..?")){ 
     $.ajax({ 
      type: "POST", 
      url: $("#applicationUrl").val() +"/web/utilities/sendEmailMessage",    
      data:$(form).serializeArray(), 
      success:function(data) 
      { 
       console.log("Sending Email Notification was success."); 
      }, 
      error: function(x, t, m) { 
       console.trace(); 
       if (!(console == 'undefined')) { 
       console.log("ERROR: " + x + t 
         + m); 
       } 
       } 
     }); 
    } 
+0

Sonu와 나는 도움이되지 않습니다. 여전히 동일한 오류 .. 및 BTW, 어떻게 내 양식 데이터 요소 내 컨트롤러 메서드 매개 변수, $ (양식) .serializeArray() 지정하여 묶여 얻을 .. 그것을 조사해 주셔서 감사합니다 .. –

0
var strResponse=$.ajax({ type: "POST", url: $("#applicationUrl").val() +"/web/utilities/sendEmailMessage", 
data: JSON.stringify({emailSubject : emailSub,emailMsg : emailBody}), async: false, 
contentType: "application/json; 
charset=utf-8", dataType: "json" }); 
if (strResponse.readyState == 4 && strResponse.status == 200) 
      return ((strResponse.responseText.indexOf("d") >= 0) ? eval('(' + strResponse.responseText + ')').d : strResponse.responseText); 
관련 문제