微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-spring mvc 3 jquery AJAX $.get-值未从控制器返回到回调方法

我是AJAX的新手,目前正在学习将其与Spring MVC结合使用.我面临着同样的问题.

在继续进行实际的实时需求之前,我将测试整个AJAX Spring MVC jQuery组合以及一些真正基础的知识,以使我理解正确.

我在页面上有一个搜索框“提交”按钮.我正在使用$.get在提交时向Spring控制器发送一个硬编码的文本.然后,我将另一个文本从该控制器发送回回调函数,并尝试使用“警报”框在回调函数显示返回的文本.这似乎不起作用.

我看到正在调用回调函数(因为回调函数中的“警报”已被触发),所以我有点假设控制权已转移到控制器并返回到回调方法,但我无法找出为什么从控制器返回的文本没有显示在回调方法的警报框中.不知道我在这里缺少什么来捕获回调方法中的返回值.

非常感谢您的回应和帮助.

谢谢.

文本框和提交按钮的HTML:

    <div class = "searchcontactform">
      <form id = "searchcontactform" name="searchcontactform" method="GET">
        <input type = 'text' size='25' name = "searchlastname" id = "searchlastname" value='Enter Last Name to Search'/>
        <input type = "submit" value="Find">
      </form>
   </div>

在提交上述表单时触发的JavaScript:

    <script type="text/javascript" src="${pageContext.request.contextpath}/resources/scripts/jquery.min.js"></script>
    <script type="text/javascript">

    $(document).ready(function( ) {
    $('#searchcontactform').submit(function(){

         $.get("ContactList-JPA/search", {textsent : 'Hello Controller'},callback);

         function callback(textreceived){
               alert('In Callback. Text Received is: '+textreceived);
         };
    });
    });

控制器:

        @RequestMapping(value = "/search", method = RequestMethod.GET)
        public @ResponseBody String searchcontact(@RequestParam(value="textsent") String textsent){
        return textsent;
        }

POM.xml中的Jackson依赖关系:

           <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.7.1</version>
    </dependency>

在servlet-context.xml和root-context.xml中驱动的注释:

    <!-- Enables the Spring MVC @Controller programming model -->
    <annotation-driven />

解决方法:

首先,在提交事件处理程序的末尾放置return false

$('#searchcontactform').submit(function(){

         $.get("ContactList-JPA/search", 
         {
             textsent : 'Hello Controller'
         },
         function(textreceived){
               alert('In Callback. Text Received is: '+textreceived);
         });
         return false;
    });

如果这不起作用,请尝试使用Google Chrome浏览器,您可以调试您的javascript应用程序,在回调中的$.get行中放置一个断点

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐