在jquery ajax中传递嵌套对象

6 ajax jquery object

我想使用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"
}
Run Code Online (Sandbox Code Playgroud)

我试图传递它像下面的例子:

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');   
    }                   
});
Run Code Online (Sandbox Code Playgroud)

我收到运行时错误作为响应.我想确保使用jQuery在AJAX中传递嵌套对象是否正确?

Joh*_*han 7

现在你只是将一个对象传递给服务器,没有密钥.您需要将数据作为JSON字符串传递.

console.log(typeof data); //object
console.log(typeof JSON.stringify(data)); //string
Run Code Online (Sandbox Code Playgroud)

要读取数据服务器端,您需要使用键和值将数据作为对象文本传递.像这样的东西:

data: { dto: JSON.stringify(data) },
Run Code Online (Sandbox Code Playgroud)

在服务器端,您可以根据语言以不同方式访问对象.

PHP:

$dto = $_POST['dto'];
Run Code Online (Sandbox Code Playgroud)

ASP.NET:

var dto = HttpContext.Current.Request.Form['dto'];
Run Code Online (Sandbox Code Playgroud)