【问题标题】:Spring MVC + JQuery + Ajax IssueSpring MVC + JQuery + Ajax 问题
【发布时间】:2013-02-20 05:22:02
【问题描述】:

我正在尝试使用 Jquery Ajax 对我的 Spring MVC 应用程序进行 Ajax 调用。应用程序控制器工作正常,但我无法让这个 Ajax 测试控制器工作。警报被触发,但从未调用控制器。我也尝试过使用加载、获取、发布。他们都没有调用服务器。这让我觉得我在做一些明显错误的事情。如果我把URL直接放在浏览器地址栏上,就会调用控制器。

如果有人可以指导我正确的方向或告诉我我做错了什么,我将不胜感激。

JavaScript

<html>
<head>
<script type="text/javascript" src="jquery-1.8.1.min.js"> </script>
<script type="text/javascript">
    function doAjax() {
        alert("did it even get here?");
        $.ajax({
            url : "simpleRequestTest.do",
            method: "GET",          
            success : function(response) {
                $('#show').html(response);
            }
        });
    }
</script>
</head>
<body>
    <h1>Simple Test </h1>
    <a href="javascript:doAjax();"> Simple Test </a>
    <br />
    <div id="show">...</div>
</body>
</html>

控制器

@RequestMapping("/simpleRequestTest")
public @ResponseBody String performSimple()  {
    return "Very Simple Test";
}   

【问题讨论】:

  • 提示:使用浏览器中的开发工具查看网络流量。您可以准确地看到命中了什么 URL,以及服务器返回了什么。这很可能会为您提供所需的信息。此外,您是否尝试过简单地将浏览器指向 simpleRequestTest.do?会发生什么?
  • 您正在请求simpleRequestTest.do,但您的控制器映射是/simpleRequestTest,没有.do。我认为服务器抛出 404 not found 错误
  • 我认为你的 ajax url 不正确。
  • 我花了一整夜在这上面,所以我真的很期待开始尝试大家的建议。所以我启动我的电脑,启动 eclipse,启动 tomcat 并运行我的应用程序......它可以工作。我没有改变任何东西。它只是工作。我看到了一个类似的问题stackoverflow.com/questions/13047573/spring-mvc-ajax-jquery,同样的事情也发生在他身上。我真的希望我有一个答案,以防下一个遇到相同问题的人正在寻找解决方案。就我而言,重新启动似乎有效。谢谢大家的建议。
  • @StriplingWarrior “你试过简单地将浏览器指向 simpleRequestTest.do” 这是我尝试的第一件事。它工作得很好,我的调试器把它捡起来,然后把字符串返回给浏​​览器。但显然是以非 ajaxy 的方式。但是当 url 请求通过 Ajax 代码时,服务器永远不会被调用。也就是说,直到今天早上它开始工作。

标签: java ajax spring jquery spring-mvc


【解决方案1】:

您能否检查是否使用正确的路径来包含 jquery-1.8.1.min.js。

我检查了它为我工作的代码。

【讨论】:

    【解决方案2】:

    我认为您在ajax 通话中缺少dataType

    试试这个

    function doAjax() {
            alert("did it even get here?");
            $.ajax({
                url : "simpleRequestTest.do",
                method: "GET",          
                success : function(response) {
                    $('#show').html(response);
                },
                dataType: 'text'
            });
        }
    

    【讨论】:

      【解决方案3】:

      只需将url : "simpleRequestTest.do", 更改为url : "simpleRequestTest", 并将method: "GET", 更改为type: "GET",

      我认为该方法在 jquery 1.5 和最新版本中被删除

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-24
        • 2015-01-04
        • 2014-02-23
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        • 2011-04-28
        相关资源
        最近更新 更多