1

我正在尝试完成我的第一次 AJAX 交换,但我在最后阶段遇到了困难。我有一个 JSON 字符串,我通过 AJAX 将其发送到 php 页面,verify.php但是当我尝试接收此数据时,$_POSTatverify.php似乎完全为空,如我verify.php页面上的代码所示:

如果(空($_POST)){
   回声“空”;
} 别的 {
   echo '非空';
}

我不知道为什么会这样......我的 AJAX 代码似乎没问题:

$.ajax({
   类型:'POST',
   url: '服务器端/verify.php',
   data: data, // 其中 data 是一个 javascript obj。这是 JSON.stringify'ied。
   数据类型:“JSON”,
   成功:函数(返回){
      控制台.log(返回);
   }                
});

当我 console.log 我的 JSON 字符串时,我看到它显示得很好,甚至我的成功回调函数也将“空”记录到控制台(因为由于我上面的 if 语句,它正在回显“空”) . 因此,交换似乎进行得很好,数据似乎发送得很好,但显然没有到达$_POST超全球。谁能解释为什么?

4

1 回答 1

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
  }

希望它会有所帮助!

于 2013-03-13T08:28:46.350 回答