2

これを行っている方法の何が問題なのかわかりません... 400 エラーが表示され、リクエストが正しくないというメッセージが表示されますが、構文に問題は見つかりません。

$.ajax({
        url : '/my_project/rest/runs/1234?token=moo',
        type : 'POST',
        data: { job_position : JSON.stringify(38) },
        contentType: 'application/json',
        dataType: 'json',
        success : function(html) {
        }
    });

受信コントローラー:

@RequestMapping(value="/runs/{userId}", method = RequestMethod.POST, consumes = {"application/json"})
    public @ResponseBody boolean myMethod(@PathVariable String userId, @RequestParam("token") String authenticationToken, @RequestBody @Valid Long job_position){
        return true;
    }
4

3 に答える 3

2

/my_project/rest/runs/1234?token=moo- GET リクエストのシンタックスです

作っ
url : '/my_project/rest/runs/1234'

data: { "job_position" : JSON.stringify(38) , "token" : "moo"}

完全なリクエストは次のようになります

$.ajax({
        url : '/my_project/rest/runs/1234',
        type : 'POST',
        data: { "job_position" : 38, "token" : "moo"},
        contentType: 'application/json',
        dataType: 'json',
        success : function(html) {
        }
    });
于 2012-08-31T19:57:31.797 に答える
2

データ部分に引用符がありませんか? data: { "job_position" : JSON.stringify(38) }

ちょっとした考え。

于 2012-08-31T19:54:43.897 に答える
1

リクエストで実際にJSONを送信しないと、jQueryはオブジェクトをクエリ文字列に変換します。これを防ぐには、自分で文字列化してください。

$.ajax({
        url : '/my_project/rest/runs/1234',
        type : 'POST',
        data: JSON.stringify({ job_position : 38, token: 'moo' }),
        contentType: 'application/json',
        dataType: 'json',
        success : function(html) {
        }
});
于 2012-08-31T20:17:48.790 に答える