使用jQuery发布JavaScript对象

时间:2012-10-31 05:55:17

标签: javascript jquery cakephp post

我的JS正在创建如下所示的对象:

enter image description here

现在我想将它发布到PHP页面。

我试过的是:

var json = JSON.stringify(item_contents);
console.log(json);

jQ.post(
    "http://somedomain.com/headlines/save_items/", 
    json,
    function(data){
        console.log("Data: ");
        console.log(data);
        alert("first success");
    },
    "json"
)
.success(function() { 
    alert("second success"); 
})
.error(function(data) { 
    alert("error: "); 
    console.log(data);
})  
.complete(function() { 
    alert("complete"); 
});

...并且输出始终是错误的。我正在使用cakePHP .. 有帮助吗? TIA !!!

编辑:

目前,我在php页面上的内容是:

echo print_r($_POST);

我得到一个空白或未定义的输出..

2 个答案:

答案 0 :(得分:1)

在你的帖子函数

中的json文字对象中发布你的json字符串

喜欢{content:json}, - 并在$ _POST

中获取此“内容”
jQ.post(
    "http://somedomain.com/save_items.php", 
    { content: json }, 
    function(data){

并在PHP中尝试使用

echo print_r($_POST["content"]);

答案 1 :(得分:0)

如果你真的想张贴json,请设置变量名。

jQ.post(
    "http://somedomain.com/save_items.php", 
    {json: json}, //<--HERE
    function(data){
        console.log("Data: ");
        console.log(data);
        alert("first success");
    },
    "json"
)
.success(function() { 
    alert("second success"); 
})
.error(function(data) { 
    alert("error: "); 
    console.log(data);
})  
.complete(function() { 
    alert("complete"); 
});

在php中使用echo $_POST['json'];

您也可能只想发布对象本身:

jQ.post(url,object,function(data)
           {
                 console.log('success',data);
            }
           ,"json")
            .error(function(data) { 
                console.log('error',data);
             });

在php中使用echo json_encode($_POST); 确保 somedomain.com 与js相同。