我的JSON输出有问题。我创建了一个像这样的ajax帖子:
function sign_up(form_data)
{
$.ajax({
url: "signup_process.php", //target
data: {userdata:JSON.stringify(form_data)},
type: "POST", //metode pengiriman
dataType: "json", //return data type
}).done(function(data) {
console.log(data);
}).fail(function(data, errorThrown, textStatus, jqXHR){
console.log(textStatus);
});
}
然后在服务器端处理它:
$data = json_decode($_POST['userdata'], true);
echo json_encode($_POST['userdata']);die();
在我的本地服务器中,它可以顺畅运行并显示所需的输出,如下所示:
{"email":"myemail@gmail.com","browser_agent":"chrome","browser_version":"30.0.1599.69","os":"win","device":"PC/Laptop/non-mobile-device","latitude":-6.211544,"longitude":106.84517199999999,"location":"Padang, Setiabudi, South Jakarta City, Jakarta 12850, Indonesia","ip":"139.xxx.xxx.xxx"}
但是,当我将它上传到实时网络服务器上时,结果就像这样(这么多反斜杠)。我发现它打破了我的整个代码:
{\"email\":\"myemail@gmail.com\",\"browser_agent\":\"chrome\",\"browser_version\":\"30.0.1599.69\",\"os\":\"win\",\"device\":\"PC/Laptop/non-mobile-device\",\"latitude\":-6.211544,\"longitude\":106.84517199999999,\"location\":\"Padang, Setiabudi, South Jakarta City, Jakarta 12850, Indonesia\",\"ip\":\"139.xxx.xxx.xxx\"}
我真的不知道究竟是什么,因为我本地的代码与主机服务器上的代码完全相同。任何解决方案将非常感谢。感谢
答案 0 :(得分:2)
试试这个:
$data = json_decode(stripslashes($_POST['userdata']), true);
echo json_encode($_POST['userdata']);die();
问题可能与magic quotes有关,或者您正在使用模拟此效果的系统(例如WordPress)。
stripslashes
将从输入中删除斜杠。