0

文字列値を json データとしてサーバーに送信したいのですが、400 の不正な要求が返されます。これが私がデータを送信する方法のコードです。

dataString = '{"comment":"'  +dataString+ '"}';
        dataString = '[' + dataString + ']';

         $.parseJSON(dataString);
         console.debug("After parsing : "+dataString);

        $(form_element).clearForm();
        $.ajax({
            type : "POST",
            url : loc,
            cache : false,
            data : dataString,
            dataType: 'json',
            contentType: "application/json",

            success : function(data) {
                console.debug("After success");
            }

コードをデバッグすると、@RequestParameter の「コメント」に null 値が含まれます。よろしくお願いします。

4

2 に答える 2

2

parseJSON関数はオブジェクトを返します

やったほうがいい

var obj = $.parseJSON(dataString);

$.ajax({
        type : "POST",
        url : loc,
        cache : false,
        data : obj,

それはあなたが本当にあなたがするようにあなたの文字列を構築する必要があると仮定しています。一般に、json文字列を作成して解析し、jQueryに再度シリアル化するように要求するのではなく、オブジェクトを作成する方が簡単です。

于 2012-09-19T11:42:18.363 に答える
1

json配列ではなくjsonオブジェクトを渡す必要があると思います。

var dataString = '{"comment":"test"}';
    //dataString = '[' + dataString + ']';  //delete this, NOT array
var obj = $.parseJSON(dataString);
console.log(obj);

$.ajax({
    type : "POST",
    url : url,
    cache : false,
    data : obj,
    contentType:"application/json; charset=utf-8",
    dataType:"json",

    success : function(data) {
        console.debug("After success");
    }
});
于 2012-09-19T13:30:38.687 に答える