8

jqueryを使用してajaxで次のネストされたオブジェクトを渡したい:

{
   "parent_param1" : [
      {
         "sub_param1" : "sub_val1",
         "sub_param2" : "sub_val2"
      },
      {
         "sub_param1" : "sub_val1",
         "sub_param2" : "sub_val2"
      },
      {
         "sub_param1" : "sub_val1",
         "sub_param2" : "sub_val2"
      }
   ],
   "parent_param2" : "par_val2",
   "parent_param3" : "par_val3"
}

次の例のように渡そうとしています:

var url = encodedURL;
var data = 'Above Object';

$.ajax({            
    type:'POST',
    url:url,
    dataType:'json',
    data:data,
        success:function(res){                      
              alert('success');                         
    },
    error:function(e){
      alert('error');   
    }                   
});

応答としてランタイム エラーが発生します。jQueryを使用してAJAXでネストされたオブジェクトを渡す正しい方法ですか?

4

2 に答える 2

8

現在、キーなしでオブジェクトをサーバーに渡しているだけです。データをJSON文字列として渡す必要があります。

console.log(typeof data); //object
console.log(typeof JSON.stringify(data)); //string

データサーバーサイドを読み取るには、データをキーと値を持つオブジェクトリテラルとして渡す必要があります。このようなもの:

data: { dto: JSON.stringify(data) },

サーバーサイドでは、言語に応じてさまざまな方法でオブジェクトにアクセスできます。

PHP:

$dto = $_POST['dto'];

ASP.NET:

var dto = HttpContext.Current.Request.Form['dto'];
于 2013-02-14T13:46:10.060 に答える
0

あなたが抱えている問題は、オブジェクト自体を投稿しようとしていることだと思います。値を文字列として送信してから、サーバー側のオブジェクトでデコードする必要があります。ここで同様の問題:

jQuery $ .post()JSONオブジェクト

JQueryはJSONオブジェクトをサーバーに投稿します

于 2013-02-14T13:46:22.123 に答える