2017-04-05 37 views
0

在下面的代码中,我正在做一个ajax调用并调用一个控制器'/ feedback',并且从控制器中,我返回字符串值为“Y”。但每次它都会将我重定向到错误的Jsp。Ajax调用没有从控制器返回成功

任何帮助,将不胜感激。

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"; 
     } 
    } 
} 
+0

您正在使用POST方法并在url中发送属性,这是错误的,以及为什么您使用feedbackdata.html而不是feedbackdata。 – mustafa918

回答

0

尝试通过增加dataType : "html"所以更新你的Ajax代码,它接受响应,串象下面这样:

$.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' />"); 
      }); 
     } 
    } 
}); 

而且请阅读jquery ajax官方文档以获取更多说明here

+0

您可以将此答案标记为有用,如果它对您有用,以便它可以帮助其他面临同样问题的人。谢谢 –

+0

我试过你的建议,但没有奏效。我仍然面临同样的问题。 – MSV

+0

在'success'函数下尝试'console.log(response)',并在这里发送你的回应。 –

1

我已经尝试过数据类型:“html”,它开始返回响应并且没有进入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; 
}); 
相关问题