【发布时间】:2015-02-16 14:06:48
【问题描述】:
我正在尝试序列化 HTML 表单并通过带有 POST 操作的 Jquery 发送它,目前我有以下 Jquery:
var dataToSend = {
'name': 'person',
'description': 'very nice person'
}
$.ajax({
type: "POST",
url: "http://localhost/rest/PersonPOST.php",
data: JSON.stringify(dataToSend)
//contentType: 'application/json',
//dataType: 'json'
});
在服务器端,我有一个 PHP 脚本,它打印它接收到的内容,到目前为止,我设法接收到一个没有 $_POST 变量的请求。 如果我 decomment contentType 和 dataType 没有任何改变......
<?php
error_log("START POST");
foreach ($_POST as $key => $entry)
{
if (is_array($entry))
{
foreach ($entry as $value)
{
error_log($key . ": " . $value . "<br>");
}
}
else
{
error_log($key . ": " . $entry . "<br>");
}
}
?>
上面的ajax请求有什么问题?
编辑:服务器端的 file_get_contents('php://input') 正确打印应该在 $_POST 变量中的内容。谁能回答如何通常将其放入 $_POST 变量中,或者为什么不可能?谢谢
【问题讨论】:
-
确保在浏览器的控制台中观看请求/响应,它会为您提供很多关于正在发生的事情的信息。
-
为什么要对数据进行字符串化?把它当作一个对象。现在,PHP 接收的是字符串,而不是对象。所以它不能将其作为键/值进行迭代。
-
file_get_contents('php://input') 可以正常工作,但恕我直言。查看我的编辑
标签: javascript php jquery ajax json