当我使用jquery.ajax对PHP脚本进行POST时,为什么整数成为字符串
我花了最后一小时试图弄清楚这一点无济于事。 有很多关于jQuery和ajax()的post,但我找不到一个处理我特定问题的post。
我的代码的基础知识:
在客户端:
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"}
为什么整数值变成字符串? 我该如何防止这种情况? 我真的不想创建一个自定义函数来循环我的数据对象(实际上是非常复杂的)来转换所有的值。
非常感谢!
在您的情况下,您需要json_decode
您收到的数据。 然后,您将通过Ajax发送的类型中包含变量。
$data = json_decode($_POST['data'], true); // $data['id'] is now int
$_POST['data']
是一个字符串,如其他答案中所解释的那样,但是当你解码它时,内部元素可以获得正确的类型。
当参数通过$_GET
或$_POST
发送时,它们被解释为字符串 。
您可能需要适当地投射它们以使它们适合您的工作方式。