Javascript js obj->;json文件(ajax、php)

Javascript js obj->;json文件(ajax、php),javascript,php,json,ajax,Javascript,Php,Json,Ajax,我目前收到200绿色响应,但是我的数据仍然没有写入我的json文件(即,它仍然是空的) JavaScript: $(function() { $('form#saveTemp').submit(function() { let savdAta = JSON.stringify($('form#saveTemp').serializeObject()); //let tempName = savdAta.styleName; console.

我目前收到200绿色响应,但是我的数据仍然没有写入我的json文件(即,它仍然是空的)

JavaScript:

$(function() {
    $('form#saveTemp').submit(function() {
        let savdAta = JSON.stringify($('form#saveTemp').serializeObject());
        //let tempName = savdAta.styleName;
        console.log(savdAta);
        //console.log(JSON.stringify($('form#saveTemp').serializeObject()));

        $.ajax({
          url: './php/data.php',
          type: 'POST',
          contentType: "application/json",  
          data: {
              template: savdAta
          },
          success: function(msg) {
              console.log('data sent to php file, but..');
          }               
        });

        return false;
    });
});
控制台中来自
savdAta
的数据格式如下:即

PHP:


您的POST变量是
模板
,只有在未设置且不为空的情况下才执行,这不是您想要的,而且无论如何也不会计算为

//Not needed
//header('Content-Type: application/json');

if (!empty($_POST['template'])) {
    $savdAta = $_POST['template'];

    //This is already JSON
    //$jsonObject = json_encode($savdAta);
    file_put_contents('./data.json', $savdAta);
}

摆脱
contentType:“application/json”,
$\u POST['savdAta']
是JSON,但顶级POST数据不是。愚蠢的错误:
if(!isset($\u POST['savdAta']))
。您仍然可以删除该条件,因为
empty
检查
isset
。变量名
savdAta
不会发送到PHP-因此您不会将其视为POST变量-一旦您修复了contentType,您可能会在
模板中发送数据
POST变量-因为这是您在n代码如果
条件不成立,您的代码实际上什么也不做,并返回
200
如果
条件不成立。您可能需要附加几行代码来指示错误条件。谢谢;但是即使有所有建议:我的数据,即{“styleName”:“fillType”:“none”,“fillTrans”:“0”}不会写入json文件谢谢,即使这样,json文件也是完全空白的….
error\u reporting(E\u ALL);ini\u set('display\u errors','1');
到文件顶部查看错误。
<?php

header('Content-Type: application/json');

if (!isset($_POST['savdAta']) && !empty($_POST['savdAta'])) {
    $savdAta = $_POST['savdAta'];

    $jsonObject = json_encode($savdAta);
    file_put_contents('./data.json', $jsonObject);
}
<?php

if (!empty($_POST['template'])) {
    $savdAta = $_POST['template'];

    file_put_contents('./data.json', $savdAta);
}
//Not needed
//header('Content-Type: application/json');

if (!empty($_POST['template'])) {
    $savdAta = $_POST['template'];

    //This is already JSON
    //$jsonObject = json_encode($savdAta);
    file_put_contents('./data.json', $savdAta);
}