以下のようなエラーメッセージが表示されます。
「クロスオリジン要求をブロックしました: 同一生成元ポリシーにより、
file:///C:(省略)/json/data.json にあるリモートリソースの読み込みは
拒否されます (理由: CORS 要求が http でない)。」
- FC2のサーバーにアップロードしても表示出来ませんでした。
- ファイルのパスの指定が間違っているのかもしれません。
- 検索して調べましたが、サーバーに関する知識不足なため良く分かりませんでした。
ファイルのディレクトリ構造。
idx.html
[json] --- data.json
[css] --- style.css
[js] --- app.js
--- jquery-3.6.0.min.js
[]はフォルダです。
$(function() { let tbody; tbody = $('#tbody'); // tbody要素。 // data.jsonを取って来る。 $.getJSON('../json/data.json', function(people) { // 配列内の各オブジェクトそれぞれについて処理する。 $.each(people, function(i, person) { // 変数宣言 ************************************************************** let mail, // td要素。 name, // td要素。 no, // td要素。 text_mail, // 各値を取得し、テキストを取得。 text_name, // 各値を取得し、テキストを取得。 text_no, // 各値を取得し、テキストを取得。 tr; // tr要素。 // 変数の初期化 *********************************************************** mail = $('<td>').text(text_mail); name = $('<td>').text(text_name); no = $('<td>').text(text_no); text_mail = person.mail; text_name = person.name; text_no = person.no; tr = $('<tr>'); // 実行処理 ************************************************************** // tr要素にtd要素を追加。 tr.append(no); tr.append(name); tr.append(mail); // tbodyにtr要素を追加。 tbody.append(tr); }); }); });
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>外部ファイルから表作成 - 基本形 | jQuery book demos</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <h1>Ajax table</h1> <table> <thead> <tr> <th>No.</th> <th>Name</th> <th>Mail</th> </tr> </thead> <tbody id="tbody"></tbody> </table> <script src="js/jquery-3.6.0.min.js"></script> <script src="js/app.js"></script> </body> </html>
[ { "no": "0001", "name": "Taro Yamada", "mail": "example1@example.com" }, { "no": "0002", "name": "Hanako Suzuki", "mail": "example2@example.com" }, { "no": "0003", "name": "Takeshi Tanaka", "mail": "example3@example.com" } ]

回答1件
あなたの回答
tips
プレビュー