我正在尝试完成我的第一次AJAX交换,但是我正在家里伸展。我有一个JSON字符串,我通过AJAX发送到php页面verify.php
,但是当我尝试接收这些数据时,$_POST
verify.php
似乎完全为空,如我verify.php
页面上的代码所示:
if (empty($_POST)) { echo 'empty'; } else { echo 'not-empty'; }
我不知道为什么这是......我的AJAX代码似乎没问题:
$.ajax({ type: 'POST', url: 'serverside/verify.php', data: data, // Where data is a javascript obj. which has been JSON.stringify'ied. dataType: "JSON", success: function(returned) { console.log(returned); } });
而且当我调试我的JSON字符串时,我正在看到它显示得很好,甚至我的成功回调函数都是将“空”记录到控制台(因为它因为我的if而回显'空'上述声明)。所以交换看起来很好,数据似乎很好,但显然没有到达$_POST
超全球。有谁能解释为什么?
答案 0 :(得分:2)
请检查您是否错过任何一步!
//声明变量
var jsonObj = {demo: 'this is just a simple json object'}
//让我们转换我们的JSON对象
var postData = JSON.stringify(jsonObj);
//让我们将字符串化的json放入变量中以便发布
var postArray = {json:postData};
$.ajax({
type: 'POST',
url: "http://somedomain.local.com/phpfile.php",
data: postArray,
success: function(data){
// Do some action here with the data variable that contains the resulting message
}
});
我们需要从字符串中去除斜线以便运输。然后我们只运行json_decode php函数。之后我们可以访问php对象并按照我们的意愿使用它。
if(isset($_POST["json"])){
$json = stripslashes($_POST["json"]);
$output = json_decode($json);
// Now you can access your php object like so
// $output[0]->variable-name
}
希望它会有所帮助!