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)
提前谢谢大家!
终于成功了!事情是这样的:
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 字符串中的“字符有斜杠”。
感谢大家的帮助,我希望这对其他人有帮助。
| 归档时间: |
|
| 查看次数: |
2922 次 |
| 最近记录: |