いつもお世話になっています。
下記の質問についてご存知の方がいらっしゃいましたらご教示を願います。


【質問の主旨】

下記のPHPとJavaScriptのコードを用いて、fetch_json.phpにアクセスした時のコンソール画面に、「こんにちは echizenya さん」と表示させるためにはどうすれば良いでしょうか?

<?php
$data = json_decode(file_get_contents('php://input'));
print('こんにちは' . $data->name . 'さん!');
let data = { mid: 'y001', name: 'echizenya', age: 43};

// JSON
fetch('fetch_json.php', {
    method: 'POST',
    headers: {
        'content-type':  'application/json',
    },
    body: JSON.stringify(data),
})
    .then(function(response) {
        return response.text();
    })
    .then(function(text) {
        console.log(text);
    });

【質問の補足】

【質問の主旨】に対して下記の4点を補足説明します。

1.
現在、ローカル開発環境上でfetch_json.phpを実行すると下記の画面が表示されます。

画像の説明をここに入力

表示された画面の特徴として以下の3点が挙げられます。

  • Notice: Trying to get property of non-objectと注意文が表示される
  • fetch_json.jsで使っているdatanameプロパティのechizenyaが画面に表示されない。
  • コンソール画面には何も表示されない

2.

fetch_json.phpNotice: Trying to get property of non-objectとありますが、dataオブジェクトに対するnameプロパティは、fetch_json.jsの1行目で定義されていると思います。

3.
ローカル開発環境はWockerを使用しています。
https://wocker.dev/

4.
今回の質問は、「JavaScript逆引きレシピ 第2版」のP483の内容に基づいて投稿しています。

https://www.shoeisha.co.jp/book/detail/9784798157573


以上、ご確認のほどよろしくお願い申し上げます。