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

質問編集履歴

2

問題点の書き直し

2018/10/13 15:31

投稿

meron-pan
meron-pan

スコア44

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
  pythonの標準ライブラリhttp.serverを使ってローカルでサーバーを作り、データの通信実験をしてみました。
3
- しかし、cgiは「CGI script exited OK」と出るのに、POST通信ではブラウザには何も返って来ていないことになっていて困惑しています。
3
+ ~~しかし、cgiは「CGI script exited OK」と出るのに、POST通信ではブラウザには何も返って来ていないことになっていて困惑しています。~~
4
+ これはコードのミスでした(javascriptで受け取るコードを実行していなかった)のですが、結局受信した結果で例外が発生し、その例外の内容もundefinedになってしまい原因がわかりません。
4
5
  サーバーに対する知識は全くないので、ネットのありとあらゆる場所からコードを引っ張って作ったコードですが、問題点を教えてください。
5
6
 
6
7
  ### 発生している問題・エラーメッセージ
@@ -62,9 +63,10 @@
62
63
 
63
64
  if os.environ['REQUEST_METHOD'] == 'POST':
64
65
  form = cgi.FieldStorage()
66
+ result_json = {'key': 'value'}
65
67
  print("Content-Type: application/json; charset=utf-8\r\n")
66
68
  print('\n')
67
- print(form)
69
+ print(json.dumps(result_json))
68
70
  else:
69
71
  print("Content-Type: text/html; charset=utf-8\r\n")
70
72
  print('\n')
@@ -103,7 +105,7 @@
103
105
  xhr.open("POST", 'http://localhost:8000/cgi-bin/server.py', true);
104
106
  xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
105
107
  xhr.send(json);
106
-
108
+   ajaxGet();
107
109
  }
108
110
 
109
111
  ajaxGet = function () {
@@ -111,8 +113,7 @@
111
113
  try{
112
114
  if (httpRequest.readyState === XMLHttpRequest.DONE) {
113
115
  if (httpRequest.status === 200) {
114
- console.log("返ってきたよ")
115
- console.log(req.responseText)
116
+ console.log(req.responseText)
116
117
  alert(req.responseText);
117
118
  }else {
118
119
  alert('リクエストに問題が発生しました');
@@ -124,23 +125,6 @@
124
125
  }
125
126
  }
126
127
 
127
-
128
- //独自関数
129
- createTable = function (rows, cells, tableID) {
130
- "use strict";
131
- var table = document.createElement("table");
132
- table.id = tableID;
133
- for (var i = 0; i < rows; i++) {
134
- var row = table.insertRow(-1);
135
- for (var j = 0; j < cells; j++) {
136
- var cell = row.insertCell(-1);
137
- var data = document.createTextNode("");
138
- cell.appendChild(data);
139
- }
140
- };
141
- document.getElementById("dispArea").appendChild(table);
142
- }
143
-
144
128
  json = {
145
129
  "messages":
146
130
  [

1

コードの修正

2018/10/13 15:30

投稿

meron-pan
meron-pan

スコア44

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,10 @@
1
1
  ### 前提・実現したいこと
2
2
  pythonの標準ライブラリhttp.serverを使ってローカルでサーバーを作り、データの通信実験をしてみました。
3
- しかし、cgiは「CGI script exited OK」と出るのに、ブラウザには何も返って来ていないことになっていて困惑しています。
3
+ しかし、cgiは「CGI script exited OK」と出るのに、POST通信ではブラウザには何も返って来ていないことになっていて困惑しています。
4
4
  サーバーに対する知識は全くないので、ネットのありとあらゆる場所からコードを引っ張って作ったコードですが、問題点を教えてください。
5
5
 
6
6
  ### 発生している問題・エラーメッセージ
7
- cgiは動作するのに値がブラウザで確認できない。(確認として、POST通信ではない状態で、アクセスしたらhtmlを返すコードを追加しましたところ、「Content-Type:」だけが表示されました。)
7
+ cgiは動作するのに値がブラウザで確認できない。(確認として、POST通信ではない状態で、アクセスしたらhtmlを返すコードを追加しましたところ、~~「Content-Type:」だけが表示されました。~~※単純なhtmlのミスでした。スイマセン。修正しました
8
8
 
9
9
 
10
10
  ### 該当のソースコード
@@ -28,8 +28,7 @@
28
28
  sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
29
29
 
30
30
 
31
- html = '''Content-Type: text/html
31
+ html = '''
32
-
33
32
  <!DOCTYPE html>
34
33
  <html lang="ja">
35
34
  <head>