【问题标题】:Valid AJAX request with Spring MVC使用 Spring MVC 的有效 AJAX 请求
【发布时间】:2016-07-09 07:10:27
【问题描述】:

我正在尝试向我的Spring MVC Servlet 发送一个AJAX jQuery 请求,但遇到了一些问题。我已经阅读了一些文章,但它们对我没有帮助:( 所以我有这个ajax 请求:

            $.ajax({
                url         : "add_news",
                type        : "POST",
                dataType    : 'json',
                contentType : 'application/json',
                mimeType    : 'application/json',
                data        : JSON.stringify({"category": categoryName, "name": newsName, "data": newsData}),
                success     : function(data) {
                    $("#list_news").append(
                            data.id + " : " +
                            data.name + " - " +
                            data.created + " ; " +
                            data.data + "<br>");
                }
            });

控制器是:

@RequestMapping (value = "/add_news", method = RequestMethod.POST)
public @ResponseBody News addNews(@RequestParam String category, @RequestParam String name, @RequestParam String data) {
    System.out.println("category " + category);
    System.out.println("name " + name);
    System.out.println("data " + data);

    NewsCategoryDict c = new NewsCategoryDict();
    c.setId(66);
    c.setName("misc");

    News response = new News();
    response.setCategory(c);
    response.setId(60);
    response.setName(name);
    response.setData(data);
    response.setCreated(new java.util.Date());

    return response;
}

我什至没有让系统退出 - 所以我的第一个问题是 url。 “add_news”不是jsp - 只是从服务器获取记录的逻辑。 输入参数中的第二个问题(如果我理解正确的话)。我必须使用@RequestBody 从客户端获取作为 Java POJO 的数据,并将这个 POJO 连同一些附加信息一起发送回来。但我不明白如何在AJAX.data 中写入JSON 正文以使其有效。 请帮帮我。

编辑 行。我找了一会儿。如果我在 $.ajax 中使用 GET 并在控制器处理程序方法中设置 RequestMethod.GET - 将调用方法(使用 POST - 无操作)。那么为什么 POST 不起作用??

【问题讨论】:

    标签: java jquery ajax spring-mvc


    【解决方案1】:

    从帖子数据中删除JSON.stringify()

    $.ajax({
        url         : "add_news",
        type        : "POST",
        dataType    : 'json',
        contentType : 'application/json',
        mimeType    : 'application/json',
        data        : {"category": categoryName, "name": newsName, "data": newsData},
        success     : function(data) {
            $("#list_news").append(
                    data.id + " : " +
                    data.name + " - " +
                    data.created + " ; " +
                    data.data + "<br>");
        }
    });
    

    【讨论】:

    • 所以这意味着我的方法中的@RequestParam 将像 AJAX.data 一样有序?那么 URL 呢?我在 Controller 中没有任何 println?
    • 为什么 GET 方法有效而 POST 方法不调用 Controller?
    • 当你使用GET时,你使用JSON.stringify()吗?
    • 没有。我删除它,一切正常。但是 Post Controller 只是没有反应
    猜你喜欢
    • 2014-03-07
    • 1970-01-01
    • 2015-11-25
    • 2016-11-28
    • 2015-08-08
    • 2015-04-28
    • 2014-12-31
    • 2013-07-07
    • 1970-01-01
    相关资源
    最近更新 更多