0

Spring MVC 3.1 を使用して、この投稿に非常に似たものを作成しようとしています。

JQuery、Spring MVC @RequestBody、および JSON - 連携させる

例の「FooBar」などのカスタムクラスとして応答を取得しようとしています。

私のajax呼び出しは次のようになります:

// var rule = "giveThisATry";
var rule = {
    id : 1,
    name : {
        name1 : "1",
        name2 : "2",
        name3 : "3",
        name4 : "4"
    }
};
$.ajax({
    url : "http://localhost:8080/spring2/save",
    type : "POST",
    dataType : "json",
    //contentType : "application/json; charset=utf-8",
    data : rule,
    success : function(data) {
        alert("success saveRule: " + data);
    },
    error : function(request, status, error) {
        alert("error saveRule: " + request.responseText);
    }
});

私の残りの方法は次のようになります。

@RequestMapping(method = RequestMethod.POST, value = "/save")
public @ResponseBody MyClass save(@RequestBody MyClass instance, final HttpServletResponse response) {
    response.setHeader("Access-Control-Allow-Origin", "*");
    return MyDB.Save(instance);
}

今私が何をしても、Spring は ajax 呼び出しをこのメソッドにマップしません。また、ajax 呼び出しの行のコメントを外すと、次のようになります。

contentType : "application/json; charset=utf-8",

Chrome は「request-method」を「OPTIONS」に変更します。

Request Method:OPTIONS
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:Origin, Content-Type, Accept
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:8080
Origin:http://127.0.0.1:8020
Pragma:no-cache
Referer:http://127.0.0.1:8020/JQueryPOC/src/index.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko)     Chrome/17.0.963.56 Safari/535.11
Response Headersview source
Allow:GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS
Content-Length:0
Date:Fri, 15 Jun 2012 15:07:19 GMT
Server:Apache-Coyote/1.1

requestbody などを使用して json を pojo にマップできるように、MappingJacksonHttpMessageConverter をテスト/デバッグ/制御するにはどうすればよいですか?

4

1 に答える 1

1

ruleをJson文字列に変換する必要があることがわかりました-このプラグインが役立つ場合があります: http://code.google.com/p/jquery-json/ data : $.toJSON(rule)

于 2012-06-15T18:10:33.350 に答える