简体   繁体   中英

PHP not receiving JSON send by Ajax

I am trying to send some JSON data to a PHP file using Ajax. Here is my JavaScript code :

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));
};

And here is the PHP file that processes the request:

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

Unfortunately this isn't working. How can I repair my code?

Please, no jQuery.

Thanks!

Also, if you vote down, please tell me why so I can improve this question.

You should add line with setting Content-type when you POST your data.Try this:

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

Also :

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM