Ajax调用没有从控制器返回成功

时间:2017-04-05 22:22:10

标签: javascript jquery ajax spring-mvc

在下面的代码中,我正在进行ajax调用并调用控制器' / feedback',并且从控制器,我返回一个String值为" Y"。但每次,它都会将我重定向到错误Jsp。

任何帮助都将不胜感激。

Ajax电话:

document.getElementById("modal_feedback").addEventListener("submit", function(e) {
        var form = this;
         var name = form.name.value;
         var rating = form.overall.value;
         var msg = form.message.value;
         if(name == "") {
           alert("Please enter your Name");
         form.name.focus();
         e.preventDefault();
         } else if(rating == "") {
            alert("Please select a rating");
         form.overall[0].focus();
         e.preventDefault();
          } else if(msg == "") {
             alert("Please enter your comment in the Message box");
          form.message.focus();
         e.preventDefault();
       }
       $.ajax({
          type: "POST",
          url: "feedbackData.htm?ratingId="+rating+"&msg="+msg,
          success: function(response) {
         console.debug(response);
         if(response == 'Y'){
         $('#contact_form').html("<div id='message'></div>");
         $('#message').html("<h2>Contact Form Submitted!</h2>")
        .append("<p>We will be in touch soon.</p>")
        .hide()
        .fadeIn(1500, function() {
            $('#message').append("<img id='checkmark' src='images/icon_pdf.png' />");
          });
    }
    }
  });
  return false;

}, false);

控制器代码:

@RequestMapping(value = "/feedbackData")
    public @ResponseBody String getFeedbackData(String ratingId, String msg) throws UnsupportedEncodingException{
        System.out.println("Inside FeedbackController..");
        try{
            feedbackService.updateFeedback(ratingId,msg);
            return "Y";
        }catch(Exception e)
        {
            logger.error("Exception in Login :" + e);
            return "N";
        }
    }
}

2 个答案:

答案 0 :(得分:1)

我试过数据类型:&#34; html&#34;它开始返回响应而没有进入error.jsp。更新了JS代码,如下所示

      document.getElementById("modal_feedback").addEventListener("submit", function(e) {
      e.preventDefault();   
      var form = this;
      var name = form.name.value;
      var rating = form.overall.value;
      var msg = form.message.value;
          if(name == "") {
             alert("Please enter your Name");
             form.name.focus();
             e.preventDefault();
          } else if(rating == "") {
      alert("Please select a rating");
      form.overall[0].focus();
      e.preventDefault();
      } else if(msg == "") {
         alert("Please enter your comment in the Message box");
         form.message.focus();
         e.preventDefault();
     }
     $.ajax({
    type: "POST",
    url: "feedbackData.htm?ratingId="+rating+"&msg="+msg,
    async : false,
    dataType: "html",
    success: function(response) {
        console.debug(response);
        if(response == 'Y'){
        $('#modal_window').html("<div id='message'></div>");
        $('#message').html("<h2>Feedback Form Submitted!</h2>").append("<p>We will be in touch soon.</p>")
        }
    },
    error : function(e) {
        alert('Error: ' + e);
    }
  });
   return false;
});

答案 1 :(得分:0)

尝试通过添加$.ajax({ type: "GET", url: "feedbackData.htm?ratingId="+rating+"&msg="+msg, dataType: "html", success: function(response) { console.debug(response); if(response == 'Y'){ $('#contact_form').html("<div id='message'></div>"); $('#message').html("<h2>Contact Form Submitted!</h2>") .append("<p>We will be in touch soon.</p>") .hide() .fadeIn(1500, function() { $('#message').append("<img id='checkmark' src='images/icon_pdf.png' />"); }); } } }); 来更新您的ajax代码,以便它接受如下字符串的响应:

jquery ajax

另请阅读/public/官方文档,以获得更多说明here