Javascript 为什么我无法将JS对象成功发布到PHP?

Javascript 为什么我无法将JS对象成功发布到PHP?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我已经研究了这么多的问题,并遵循了那些被回答的人的建议,包括,但我仍然在努力让这项工作发挥作用。我准备了一个简化的测试 JS&HTML <html lang="en"> <head> <meta charset="utf-8" /> <title></title> <script src="https://ajax.googl

我已经研究了这么多的问题,并遵循了那些被回答的人的建议,包括,但我仍然在努力让这项工作发挥作用。我准备了一个简化的测试

JS&HTML

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
        <script>
            $(function () {
                data = {};
                data.subject = "Change the subject";
        /*
                $.post('php/test.php', { jsonData: JSON.stringify(data) }, function (response) {
                    console.log($(response).html());
                });
        */
                $.ajax({
                    url: 'php/test.php',
                    data: data,
                    contentType: 'application/json',
                    cache: false
                }).done(function (result, success, xhr) {
                    console.log("result=" + result);
                }).fail(function (xhr, desc, err) {
                    var msg = "Send mail - " + "\nError: " + "\n" + xhr.responseText;
                    console.log(msg);
                });
            });

        </script>
    </head>
    <body>
        <form id="form" name=  "form" >
            <input id="subject" name="subject" value="not a subject" />        
        </form>
    </body>
</html>
控制台日志

test.html:22结果=
(!)致命错误:未捕获异常 带有消息“需要主题”的“异常”。在 /home/deje/public_html/writers tryst/php/test.php在线 12(!)例外情况:需要主题。在里面 /home/deje/public_html/writers tryst/php/test.php在线 12调用堆栈#TimeMemoryFunctionLocation 10.0003248416{main}()…/test.php:0

附加错误日志:

[2016年5月10日01:50:45 UTC]PHP致命错误:未捕获异常 带有消息“需要主题”的“异常”。在 /home/deje/public_html/writers-tryst/php/test.php:12堆栈跟踪:

第12行的/home/deje/public_html/writers-tryst/php/test.php中抛出了0{main} 编辑

网络表:


对于
$,默认的
方法是
GET
,更改为
POST

         $.ajax({
                    url: 'php/test.php',
                    data: data,
                    method: 'post',
                    cache: false
                }).done(function (result, success, xhr) {
                    console.log("result=" + result);
                }).fail(function (xhr, desc, err) {
                    var msg = "Send mail - " + "\nError: " + "\n" + xhr.responseText;
                    console.log(msg);
                });
在test.php中

$subject = array();
$subject[] = 'assign values';
echo json_encode($subject);

你为什么要注释掉
/*$.post('php/test.php'…*/
?你的(post)数组依赖于它。否则,它默认为GET。或者在您的表单中指定它
,那么告诉我们错误报告给您带来了什么?顺便说一句,您下面有一个答案,如果这是问题所在,那么您的问题中没有包含该错误。我注释掉了$.post,因为我尝试了它,它产生了与answe相同的结果r在我添加了方法/类型:POST后提供。错误日志报告了与我发布的相同的错误信息(我也发布了错误日志)。我没有放弃这个问题,我有一些紧迫的事情。在我看来,这并不是所提到的问题的重复。通过添加
print\r($\u POST)检查$\u POST内容;die;
在您的if语句之前。这样您就可以看到您实际发送到php文件的内容。谢谢,@iamvain2。我学到了一些东西。据说如果。您不笑或学到一些东西,这一天就被浪费了。根据Jquery文档():Type是方法的别名。如果您使用的是1.9.0之前版本的jQuery,则应使用Type。结果证明您是对的。我也将数据对象更改为序列化。
$subject = array();
$subject[] = 'assign values';
echo json_encode($subject);