2016-06-24 23 views
0

我想實現一個ajax調用使用jquery.when我提交的調用,它是拋出400壞請求..不知道我在哪裏做錯了我的阿賈克斯在解決這個call..Need幫助..阿賈克斯jquery後調用進入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

您發佈到與400響應,所以沒有看到什麼'/網絡/公共事業/ sendEmailMessage'在做,我們不能回答你的問題的服務器。 –

+0

@Barrett,我添加了控制器代碼...請讓我知道我在做什麼錯.. –

+0

沒有必要stringify使用這些數據:{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和我仍然得到相同的錯誤..順便說一句,我的表單數據元素如何綁定到我的控制器方法參數,只需指定$(form).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);