微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery AJAX PHP JSON问题

当我以下列方式执行 AJAX请求时,我遇到了接收空数组的问题:

这是我在JavaScript中执行的代码

<script type="text/javascript" src="lib/jquery.js"></script>
  <script type="text/javascript" src="lib/jquery.json.js"></script>
  <script type="text/javascript">   
   $(document).ready(function(){

    /* Preparar JSON para el request */
    var mJSON = new Object;
    mJSON.id_consulta = new Array;
    for (var i=0; i<3; i++){
     mJSON.id_consulta[i] = new Object;
     mJSON.id_consulta[i].id = i;
    }
    var sJSON = $.toJSON(mJSON); 

    $.ajax({
     type: "POST",url: "getUbicaciones.PHP",data: sJSON,dataType: "json",contentType: "application/json; charset=utf-8",success: function(respuesta){  
      alert(respuesta);
     },error: function (request,error){
      alert("Error: " + request.statusText + ". " + error);
     }
    });  

   });
  </script>

这是PHP下的代码

<?PHP 
 /* Decodificar JSON */
 $m_decoded = $_POST;

 print_r($m_decoded);
 exit;
 ?>

我从中得到的是,使用Chrome的开发人员工具是一个空数组:

Array
(
)

关于我做错了什么的线索?

字符串sJSON正在被正确编码,这是我在那个上做“警告”时得到的:

{"id_consulta":[{"id":1},{"id":2},{"id":3}]}

提前谢谢大家!

解决方法

从您的JavaScript中,您需要将这样的数据作为键值对传递:

data: {"mydata" : sJSON},

PHP方面,由于$_POST一个关联数组,您可以访问您的数据,如下所示:

$m_decoded = $_POST['mydata'];

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐