在ajax帖子中发送json字符串

时间:2013-09-03 10:10:42

标签: php jquery json

var myData = JSON.stringify($('form').serializeArray());

$.ajax({ 
    cache: false,
    url: "http://localhost/Demo/store.php",
    type: "POST",
    data: myData,           
    complete: function (xhr, status) {
        if (status === 'error' || !xhr.responseText) {
            alert(status);              
        }
        else {
            var r = xhr.responseText;                       
        }
    }
});

$decoded = json_decode($_REQUEST['myData'],true);
print_r($_REQUEST);
exit;

if (is_array($decoded))
{
    foreach ($decoded as $value) {
        echo $value["name"] . "=" . $value["value"];
    }
}

当我试图解码php中的数据时,错误是未定义索引myData ..请帮助我......谢谢。

5 个答案:

答案 0 :(得分:0)

尝试使用:

$decoded = json_decode($_POST['myData'],true);

答案 1 :(得分:0)

调用ajax

时尝试此操作
data: {'myData' : myData},

然后使用

进行访问
json_decode($_POST['myData'],true); 

json_decode($_REQUEST['myData'],true);

答案 2 :(得分:0)

尝试此传递数据类型:

$.ajax({
    url: 'http://localhost/Demo/store.php',
    type: 'POST',
    dataType: 'json',
    data: $('#form').serialize(),
    success: function(xhr, status) {
    if (status === 'error' || !xhr.responseText) {
        alert(status);              
    }
    else {
        var r = xhr.responseText;                       
    }
}
});

答案 3 :(得分:-1)

传递字符串时,data属性只是将其作为参数查询字符串附加到URL。如果要发送编码的JSON字符串,仍需要为其命名:

data: {myData: myData}

现在,您可以在PHP脚本中使用myData请求参数。

答案 4 :(得分:-2)

使用dataType:json; tosend json。