jQuery AJAX PHP JSON问题

Art*_*uro 6 javascript php ajax jquery 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>
Run Code Online (Sandbox Code Playgroud)

这是PHP下的代码:

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

 print_r($m_decoded);
 exit;
 ?>
Run Code Online (Sandbox Code Playgroud)

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

Array
(
)
Run Code Online (Sandbox Code Playgroud)

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

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

{"id_consulta":[{"id":1},{"id":2},{"id":3}]}
Run Code Online (Sandbox Code Playgroud)

提前谢谢大家!

Art*_*uro 0

终于成功了!事情是这样的:

JavaScript:

var sJSON = $.toJSON(mJSON.id_consulta);


            $.ajax({
                type: "POST",    
                url: "getUbicaciones.php",  
                data: "json=" + sJSON,                  
                processData: false,             
                success: function(respuesta){       

                },
                error: function (request,error){

                }
            }); 
Run Code Online (Sandbox Code Playgroud)

PHP:

$m_decoded = json_decode(stripslashes($_POST["json"])); 
Run Code Online (Sandbox Code Playgroud)

请注意,我必须使用“stripslashes”,因为 JSON 字符串中的“字符有斜杠”。

感谢大家的帮助,我希望这对其他人有帮助。