使用jQuery $.post
函数,如果发送null
值,它将以"null"
的形式到达服务器端。例如:
使用Javascript:
$.post('test.php', { foo : null });
PHP:
var_dump($_POST['foo']); // string(4) "null"
我理解为什么会这样,但是想知道解决限制的最佳方法?你应该:
"null"
解释为null
?答案 0 :(得分:14)
我会把它编码成JSON。
E.g:
$.ajax({
url: 'test.php',
type: 'POST',
data: JSON.stringify({foo : null}),
contentType: "application/json",
success: function(data) {
// ...
}
});
您可以在服务器上使用json_decode
,并保留类型:
$msg = json_decode(file_get_contents("php://input"));
var_export($msg->foo); // NULL
答案 1 :(得分:0)
尝试使用以下命令将javascript对象转换为JSON:
$.post('test.php', JSON.stringify({ foo : null }));
答案 2 :(得分:0)
"null" -> null
可能会很危险。如果你不想在JSON之间进行转换,我会使用选项3而不是发送任何null的变量,然后使用if (!isset($_POST['my-var']))
答案 3 :(得分:0)
我刚遇到这个问题,我已经解决得更简单了,也许对你来说也是如此。 在您的PHP文件中,您可以这样做
if ($_POST[var] == 'null'){ $_POST[var] = NULL; }
答案 4 :(得分:-1)
这是让Dates
在C# MVC
中正确发布的奇怪解决方法:
$.post(url, JSON.parse(JSON.stringify({ ListOfObjWithDates: listOfObjWithDates })), ...