質問: いつもお世話になっています。 下記の質問についてご存知の方がいらっしゃいましたらご教示を願います。 --- ### 【質問の主旨】 GitHubに公開しているfetch_catch.htmlを表示して「現在日時」と言うボタンを押すと、"Error: undefined"と言うメッセージがポップアップされます。本来はscripts/fetch_catch.jsの7行目に記述したとおり、「指定したファイルが存在しません。」と表示されることを意図しています。意図した通りの表示をさせるためにはどうすれば良いでしょうか? ### 【質問の補足】 1. GitHubのコードは「JavaScript逆引きレシピ 第2版」と言う本のP477で「レシピ270 通信エラー時の処理を実装したい」を写経しました。本の説明では「指定したファイルが存在しません。」が表示されることになっています。 2. コンソール画面を確認すると以下の2つのエラーが表示されます。 ``` Unchecked runtime.lastError: The message port closed before a response was received. GET http://wocker.test/js_recipe_v2/ch10/nothing.php 404 (Not Found) ``` 1つめのエラーはすでに投稿した質問で解決済みで、今回の質問とは関係ないことが分かりました。2つ目のラーについても想定内です(非同期通信のエラーを処理を実装するためにあえてnothing.phpは作成していないので)。 --- 以上、ご確認よろしくお願い申し上げます。
回答: scripts/fetch_catch.jsの13行目において、`message`を`messgae`と打ち間違えています。 想定されるものの代わりに`undefined`が得られる場合は、このようにプロパティ名(`message`)を打ち間違えている(存在しないプロパティ名を指定したので`undefined`が返されている)ことがよくありますので、重点的に確認されるとよいと思います。