2016-06-24 5 views
0

jquery.whenを使用してajax呼び出しを実装しようとしています。呼び出しを送信していますが、400のBad Requestを投げています...私のajaxこれを固定する際の助け..Ajaxは400(Bad Request)を取得するコントローラーへのコールを開始します

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); 
        } 
        } 
      }); 
     } 
return false; 
     } 

をcall..Need私のコントローラーコード:

@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; 
    } 

私は本当に必要な最後の4 hrs..helpのための私の頭を叩いています。 おかげで..

答えて

0

は、あなたがあなたのデータkeys引用符で囲む必要があるデータ

変更

data:JSON.stringify({emailSubject : emailSub,emailMsg : emailBody}), 

to 

data:{emailSubject : emailSub,emailMsg : emailBody}, 
+0

こんにちはPiyush、私はデータをstringifyせずにしようとしました..しかし、幸運を受ける...同じ例外を取得....何か考え。 –

1

を文字列化いけません。 emailSubject: emailSub,emailMsg : emailBody"emailSubject" : emailSub, "emailMsg" : emailBodyに変更してください。

submitHandlerの末尾には、}の最後の部分が欠落していますが、貼り付けエラーとなる可能性があります。

+0

@ mike ...私はキーに引用符を追加しようとした。何度も同じエラーが発生しています。 –

+0

yea..its質問にペーストエラーが発生しました。編集中です。 –

+0

あなたのdevtoolsでは、AJAXリクエストの送信時に両方の値が正しく設定されているのを確認できますか?要求ペイロード内の – pmahomme

0

私は私のAJAX呼び出しとコントローラ今のユーザー@RequestBodyに変更を加え、今では正常に動作している...

私のAjaxコード:

submitHandler:function(form){ 
      var jsonObj = getData();   
      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, 
       headers: { 
        'Content-Type': 'application/json' 
        }, 
       data:JSON.stringify(jsonObj), 
       //data: ({emailInfo : JSON.stringify({emailSubject:emailSub,emailMsg:emailBody})}), 
       success:function(response) 
       { 
        response.html(); 
       }, 
       error: function(x, t, m) { 
        console.trace(); 
        if (!(console == 'undefined')) { 
        console.log("ERROR: " + x + t 
          + m); 
        } 
        } 
      }); 
     } 
      return false; 
     } 
function getData(){ 
    var object ={ 
      emailSubject : $("#emailSubTxtArea").val(), 
      emailMsg : $("#emailBodyTxtArea").val() 

    }; 
    return object; 


} 

コントローラ:

@RequestMapping(value="/sendEmailMessage",method=RequestMethod.POST) 
    public ModelAndView sendEmailCommunication(@RequestBody EmailReqInfo emailInfo){ 
     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); 
      String emailSubject = emailInfo.getEmailSubject(); 
      String emailMsg = emailInfo.getEmailMsg(); 
-- 
---- 

ドメイン: -

public class EmailReqInfo implements Serializable 
    { 

     private static final long serialVersionUID = 1L; 
     private String emailSubject; 
     private String emailMsg; 

//getters and setters 
    } 
関連する問題