PHP没有收到Ajax发送的JSON

时间:2014-04-24 12:48:04

标签: javascript json ajax

我正在尝试使用Ajax将一些JSON数据发送到PHP文件。这是我的 JavaScript代码

function updateJSON(){
    var xmlhttpa;
    if (window.XMLHttpRequest){
        xmlhttpa = new XMLHttpRequest();
    } else {
        xmlhttpa = new ActiveXObject("Microsoft.XMLHTTP");
    };
    xmlhttpa.onreadystatechange = function(){
        if (xmlhttpa.readyState==4 && xmlhttpa.status==200){
            console.log("Sent")
        }
    };
    xmlhttpa.open("POST", "update.php", true);
    xmlhttpa.send("json=" + JSON.stringify(json));
};

以下是处理请求的 PHP文件

<?php
    $json = $_POST["json"];
    file_put_contents('data.json', $json);

不幸的是,这不起作用。 如何修复我的代码?

请不要jQuery。

谢谢!

此外,如果你投票,请告诉我为什么这样我可以改善这个问题。

1 个答案:

答案 0 :(得分:2)

当您Content-type数据时,应添加设置为POST的行。请尝试:

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

另外:

xmlhttp.send("json=" + encodeURIComponent(JSON.stringify(json)));