質問するログイン新規登録

回答編集履歴

3

追記その2

2019/10/11 00:43

投稿

退会済みユーザー
answer CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  **【追記】**
6
6
 
7
+ **注:以下は普通の web サーバー(具体的には Windows 10 Pro の IIS10)を使って、それにサイトを設定し、その中に index.html, data.json, index.js を配置した場合です。質問者さんは Flask を使ってその開発サーバーで実行しているとのことで、Flask 開発サーバーの制約で data.json, index.js を置くフォルダは static にする必要があるとのことです。(下の記事のように index.html, data.json を同一フォルダに置くのは NG のようです)**
8
+
7
9
  下の 2019/10/10 23:28 の私のコメントで「あとで回答欄に詳しい話を書いておきます」と書きましたが、それを以下に追記します。
8
10
 
9
11
  templates フォルダの中に index.html と data.json を配置します。index.js は Script フォルダに入れておきます。以下の画像を見てください。

2

追記

2019/10/11 00:43

投稿

退会済みユーザー
answer CHANGED
@@ -1,3 +1,53 @@
1
1
  $.ajax の url の指定が間違っていて、サーバー側で data.json が見つからないのが 404 エラーの原因で、結果 A が undefined になっているのではないかと思います。
2
2
 
3
- 試しに、data.json ファイルを index.html ファイルがあるフォルダにコピーしたらどうなりますか?
3
+ 試しに、data.json ファイルを index.html ファイルがあるフォルダにコピーしたらどうなりますか?
4
+
5
+ **【追記】**
6
+
7
+ 下の 2019/10/10 23:28 の私のコメントで「あとで回答欄に詳しい話を書いておきます」と書きましたが、それを以下に追記します。
8
+
9
+ templates フォルダの中に index.html と data.json を配置します。index.js は Script フォルダに入れておきます。以下の画像を見てください。
10
+
11
+ ![イメージ説明](f1be97552cdb87de57aacd4d425b21a2.jpeg)
12
+
13
+ index.html は jQuery ajax で取得した JSON データを表示するために```<div id="result"></div>```を追加した以外は質問者さんのコードと同じです。
14
+
15
+ **index.html**
16
+
17
+ ```
18
+ <!DOCTYPE html>
19
+ <html lang="ja">
20
+ <head>
21
+ <meta charset="UTF-8">
22
+ <title>experience</title>
23
+ </head>
24
+ <body>
25
+ <div id="result"></div>
26
+
27
+ <script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
28
+ <script src="../Scripts/index.js"></script>
29
+ </body>
30
+ </html>
31
+ ```
32
+
33
+ 質問者さんの index.js のコードは、上の index.html の```<div id="result"></div>```に JSON データを表示できるように done のコールバックを以下のように変更しました。 url: 'data.json' は変えてません。
34
+
35
+ **index.js**
36
+
37
+ ```
38
+ $.ajax({ url: 'data.json', dataType: 'json' })
39
+ .done(function (data) {
40
+ $.each(data, function (index, d) {
41
+ $('#result').append(
42
+ '<p>id: ' + d.id + ', crowded: ' + d.crowded + '</p>'
43
+ );
44
+ });
45
+ })
46
+ .fail(function () {
47
+ window.alert('error');
48
+ });
49
+ ```
50
+
51
+ index.html の実行結果は以下の通りとなり、期待通り JSON データが表示されます。もちろん 404 エラーなどは出ません。
52
+
53
+ ![イメージ説明](347f3d5d6986e274936bcbcb28524cc7.jpeg)

1

訂正

2019/10/10 14:48

投稿

退会済みユーザー
answer CHANGED
@@ -1,3 +1,3 @@
1
- $.ajax の url の指定が間違っていて、サーバー側で data.json が見つからないのが 404 エラーの原因で、結果 A が undefind になっているのではないかと思います。
1
+ $.ajax の url の指定が間違っていて、サーバー側で data.json が見つからないのが 404 エラーの原因で、結果 A が undefined になっているのではないかと思います。
2
2
 
3
3
  試しに、data.json ファイルを index.html ファイルがあるフォルダにコピーしたらどうなりますか?