javascript のFetchを使い、別サーバーにあるjson表示のファイルの中身をweb上で表示したいと思います。
「json表示のファイル(外部サーバーphp)」、および表示側の「javascript のFetchファイル」は下記のとおりです。
外部サーバーphp
data.php
php
1 2<?php header("Access-Control-Allow-Origin: *"); ?> 3 4[ 5 { 6 "id": "1", 7 "name": "青木優位", 8 "email": "sth0@s.com", 9 "gender": "男性" 10 }, 11 { 12 "id": "2", 13 "name": "霧島隆", 14 "email": "kirisima@u.gov", 15 "gender": "男性" 16 }, 17 { 18 "id": "3", 19 "name": "中島智子", 20 "email": "nakajima@u.gov", 21 "gender": "女性" 22 }, 23 { 24 "id": "4", 25 "name": "鈴木洋子", 26 "email": "suzuki@u.gov", 27 "gender": "女性" 28 }, 29 { 30 "id": "5", 31 "name": "佐藤隆", 32 "email": "satou@u.gov", 33 "gender": "男性" 34 } 35] 36
表示のHTML (javascript)
javascript
1 2<script> 3 4fetch("https://examole.com/data.php") 5.then(function (response) { 6 7//2 : jsonメソッドでJSON形式にして返す 8 return response.json(); 9}).then(function (myjson) { 10 11//3:json形式のデータをWebページに出力する 12 makeTable(myjson); 13}); 14 15function makeTable(jsonlist) { 16 var table_wrap = document.getElementById("json_disp"); 17 var table = "<table>"; 18 table += "<th>ID</th><th>名前</th><th>性別</th><th>EMAIL</th>"; 19 //------------ 20 for (var i = 0; i < jsonlist.length; i++) { 21 var linedata = jsonlist[0]; 22 table += "<tr>"; 23 table += "<td>" + jsonlist[i].id + "</td>" + "<td>" + jsonlist[i].name + "</td>" + "<td>" + jsonlist[i].gender + "</td>" + "<td>" + jsonlist[i].email + "</td>"; 24 table += "</tr>"; 25 } 26 //----------- 27 table += "</table>"; 28 //要素に追加 29 table_wrap.innerHTML = table; 30} 31</script> 32
結果
表示されません。
コンソールでは 「 table_wrap.innerHTML = table;」の行のエラーとして
Uncaught (in promise) TypeError: Cannot set property 'innerHTML' of null
と出てきています。
どこを修正すればいいかご教示願います。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 00:38