通过$ .ajax发布的整数和布尔值由PHP转换为字符串

时间:2018-03-17 00:03:57

标签: javascript php jquery ajax casting

我有一些相当标准的jQuery:

$.ajax({
    type: 'POST',
    url: myurl,
    dataType: 'JSON',
    data: {
        id: 5,
        status: true
    }
});

当PHP收到并自动解码JSON数据时,整数和布尔值将转换为字符串。这是个坏消息,因为有一些功能可以检查类型是否等效。

任何想法如何让PHP很好地解码?

1 个答案:

答案 0 :(得分:0)

以下是您可以做的事情:

$.ajax({
  type: 'POST',
  url: myurl,
  contentType: 'application/json',
  data: JSON.stringify({
    id: 5,
    status: true
  })
});

然后在PHP方面:

$input = file_get_contents('php://input');
$object = json_decode($input);

在这种情况下,$object->status应该是一个布尔值(其余数据也应保留其原始类型)。

不确定这是否值得。您可以像其他人提到的那样简单地检查它们应该是什么类型。 filter_var是一种可靠的方法。