使用Ajax将JavaScript中的JSON数据传递给PHP

时间:2013-04-05 18:02:16

标签: php javascript ajax json post

我有以下JS:

window.onload = function() {
'use strict';
var ajax = getXMLHttpRequestObject();

ajax.onreadystatechange = function() {
    if ( ajax.readyState == 4 ) {
        if ( (ajax.status >= 200 && ajax.status < 300) || (ajax.status == 304) ) {
            var data = JSON.parse(ajax.responseText);
            var file = '';
            file += 'Original: ' + data['org'].file + '<br>';
            file += 'Processed: ' + data['pre'].file + '<br>';
            document.getElementById('output').innerHTML = file; 
        } else {
            document.getElementById('output').innerHTML = 'Error: ' + ajax.statusText;
        }
    }
};

document.getElementById('btn').onclick = function() {
    ajax.open('POST', 'resources/test.json', true);
    ajax.setRequestHeader('Content-Type', 'application/json');
    ajax.send(null);
};
};

我想从

传递数据
  

数据[ '的有机']。文件

  

数据[ '预']。文件

到PHP并让它使用POST方法回显值。请不要jQuery解决方案,这需要严格的JavaScript。

这样的事情:

<?php $data = $_POST['the_data']; echo $data; ?>

这是来自test.json的JSON:

{
"org": {
    "file": "css/original.css"
},
"pre": {
    "file": "css/preprocessed.css"
}
}

2 个答案:

答案 0 :(得分:0)

如果您希望PHP脚本回显JSON数据,它就像这样简单:

<?
    $json = file_get_contents('php://input');
    //...
    echo $json;
?>

要从Javascript发布,我建议阅读this。有很多人使用jQuery的原因......

答案 1 :(得分:0)

查看JSON Stringify,您可以使用它来编码数据。

然后在您编码后,您可以将它发送到您需要的任何地方。