如何在SpringMVC3中使用jQueryAjax

如何在SpringMVC3中使用jQueryAjax,ajax,jquery,spring-mvc,Ajax,Jquery,Spring Mvc,此功能是在单击按钮时执行的 它只是插入1到数据库的路径 插入行是完美的,但是 问题总是返回“错误警报” “成功警报”永不返回 怎么做 对不起,我的英语不好 $(function(){ $("[name='replyWrite']").click(function(){ var text = $("textarea").val(); $.ajax({ url: "http://localhost:8080/replyWrite",

此功能是在单击按钮时执行的

它只是插入1到数据库的路径

插入行是完美的,但是

问题总是返回“错误警报”

“成功警报”永不返回

怎么做

对不起,我的英语不好

$(function(){
    $("[name='replyWrite']").click(function(){
        var text = $("textarea").val();
        $.ajax({
            url: "http://localhost:8080/replyWrite",
            type: "POST",
            data: "no=100&id=test&comment=this is test",
            dataType: "text",
            cache: "false",
            success: function(){
                alert("Success");
                // something to do
            },
            error: function(data, textStatus, errorThrown){
                alert("error\n" + data + ", " + textStatus + ", " + errorThrown);
            }
        });
    });
});
而replyWrite代码是

@RequestMapping(value="/replyWrite")
public String replyWrite(@RequestParam(required=true)int no
                        , @RequestParam(required=true)String id
                        , @RequestParam(required=true)String comment){
    return boardDaoJdbc.replyWrite(id, no, comment);
}



public String replyWrite(String id, int no, String comment){
    // it will be return "1"
    return Integer.toString(this.jdbcTemplate.update("INSERT INTO testz_board_reply(id, comment, linked_idx, write_date) VALUES (?, ?, ?, DATE_FORMAT(now(), '%Y-%c-%d %H:%i')) ",
                            id, comment, no));
}

问题可能在于您的URL:
http://localhost:8080/replyWrite
。如果您已经在某个上下文路径下部署了WAR应用程序,则应该在URL中使用此上下文路径

例如-Tomcat在
webapps
中有
ROOT
文件夹-只有这个“webapp”有空的上下文路径。如果您的WAR是
example.WAR
,您的URL应该是
http://localhost:8080/example/replyWrite

处理此问题的常用方法是在JavaScript中添加一点服务器端处理,以生成URL(而不是硬编码)

例如,使用JSP时:

$.ajax({
    url: "<c:url value="/replyWrite" />",
    ...
$.ajax({
url:“”,
...
问候
Grzegorz Grzybek

如果您使用的是ajax,则需要使用
@ResponseBody
注释

因此,您的映射应该如下所示:

@RequestMapping(value="/replyWrite", method=RequestMethod.POST)
@ResponseBody
public String replyWrite(@RequestParam(required=true)int no
                        , @RequestParam(required=true)String id
                        , @RequestParam(required=true)String comment){
    return boardDaoJdbc.replyWrite(id, no, comment);
}
现在在我的客户方面:

<script src="../scripts/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){

    $("#replyWrite").click(function () {
        var text = $("textarea").val();
        var request = "no=100&id=test&comment=this is test",
        $.post("replyWrite", request,
                   function(data) {
                    alert(data);
                   });
        });
      });
</script>

$(文档).ready(函数(){
$(“#replyWrite”)。单击(函数(){
var text=$(“textarea”).val();
var request=“no=100&id=test&comment=this is test”,
$.post(“replyWrite”,请求,
功能(数据){
警报(数据);
});
});
});

希望有帮助。

当您将所有AJAX javascript放在单独的js文件中时,您会怎么做?这样行吗?