我花了最后一小时试图弄明白这一点无济于事。有很多关于jQuery和ajax()的帖子,但是我还没能找到一个处理我特定问题的帖子。
我的代码的基础知识:
在客户端:
var data = {"id": 1};
j.ajax({
type: "POST",
url: "postTestingResult.php",
data: {'data': data},
dataType: "json",
success: ajaxSuccess,
error: ajaxError
});
在使用PHP的服务器上:
$data = $_POST['data'];
echo $data; //{"id": "1"}
为什么整数值变成字符串?我该如何防止这种情况?我真的不想创建一个自定义函数来遍历我的数据对象(实际上非常复杂)来转换所有值。
非常感谢!
答案 0 :(得分:5)
当参数通过$_GET
或$_POST
发送时,它们会被解释为 字符串 。
答案 1 :(得分:2)
在您的情况下,您需要json_decode
您收到的数据。然后,您将通过Ajax发送的类型中包含变量。
$data = json_decode($_POST['data'], true);
// $data['id'] is now int
$_POST['data']
是一个字符串,正如其他答案中所解释的那样,但是当您解码它时,内部元素可以获得正确的类型。