我正在尝试序列化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变量的请求。
如果我将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变量中的原因,或者为什么不可能呢?谢谢

最佳答案

您无需stringify,因为您已经在手动创建JSON对象。像这样尝试:

var dataToSend = {
    'name': 'person',
    'description': 'very nice person'
};
$.ajax({
    type: "POST",
    url: "http://localhost/rest/PersonPOST.php",
    data: dataToSend
});

关于javascript - Ajax JSON.stringify,POST变量为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28543237/

10-14 02:08