2015-04-03 117 views
0

我想通过发送JSON格式的数据来实现ajax调用。 一些错误的语法 例如:通过发送json发送json

var string_json='{"usr":{"name":"john","surname":"do"}}'; 
$.ajax({ url:"myurl",type:"post",data:{user:JSON.stringify(string_json)}, 
success:function(info){ 
     alert(info);     } 
      }) 

PHP端:

$var=$_POST['user']; 
$user=json_decode($var); 
echo $user->usr->name ; 

在呼叫HTTP结束,我什么也看不到的信息提示。

回答

0

string_json已经是JSON格式,所以你可以这样做:

data: {user: string_json} 

然而,最好打电话JSON.stringify原来的对象,而不是手工构建JSON字符串。

var user = { usr: { name: "john", surname: "do" } }; 
$.ajax({ 
    url: "myurl", 
    type: "post", 
    data: { user: JSON.stringify(user) } 
    success: function(info) { 
     alert(info); 
    } 
}); 
+0

谢谢,现在都清楚了 – Soxnaples 2015-04-03 08:33:20

0

数据需要是一个字符串,因此请在您设置数据的任何位置调用JSON.stringify。

var usr : { 
    name : "john", 
    surname : "do" 
    }; 
$.ajax({ url: "myurl", type:"post", data: JSON.stringify({ user: usr }), 
success: function(info){ 
      alert(info);     
     } 
});