jQuery将json请求发送到spring mvc服务器后得到400错误

时间:2012-10-16 17:39:05

标签: jquery json spring-mvc

我的spring3.1 mvc服务器可以通过添加@ResponseBody来响应正确的json结果,春天设置文件应该没有问题。包含servlet.xml

<mvc:annotation-driven/>

我把杰克逊罐放在类路径中。

我的html文件还在.ajaxSetup()方法中将contentType设置为'application / json'。我可以在Firebug中看到post header是正确的。

我也试过用json2.js来调用JSON.stringify方法。

json格式示例:

{"link":"http:xxxxx","ticker":"xxxxx"}

responseBody类是Document:

public class Document implements Serializable{
   public String getLink(){...}
   public String setLink(String link){...}
   public String getTicker(){...}
   public String setTicker(String ticker){...}
}

控制器代码:

public class LoadFile  {                                                                                                                                                                                                                                                                                                                                                                         

    @RequestMapping(value="/loadFile",method=RequestMethod.POST)                                                                                                                                                  
    public @ResponseBody Document loadFile(@RequestBody Document document){ 
        ...
    }
}

html代码:

$(function() {                                                                                                                                                                                                   
    $.ajaxSetup({                                                                                                                                                                                               
        contentType:"application/json;charset=utf-8" 
    });                                                                                                                                                       
    $.post( url, { link: link, ticker:ticker },                                                                                                                                            
        function( data ) {  
           ....
        },"json"
    );
}

文档类在添加@ResponseBody时可以作为json对象返回,但是当作为@RequestBody时,服务器返回400错误。不确定会发生什么。

2 个答案:

答案 0 :(得分:0)

我最近遇到过类似的问题。对我来说,它是在变量名称周围添加“”,这给了我400错误。试试这样:

{link:"http:xxxxx",ticker:"xxxxx"}

还要确保您的变量对应于您的数据库,具体取决于Spring3.1如何处理数据。 (例如,顺序正确)

我希望能帮助你。

答案 1 :(得分:0)

@RequestBody替换为@ModelAttribute