質問編集履歴

6

文法の修正

2018/10/09 15:04

投稿

meron-pan
meron-pan

スコア44

test CHANGED
@@ -1 +1 @@
1
- pythonCGIからjsonを返したい
1
+ pythonCGIからjsonを返したい(クロスオリジン要求の解決)
test CHANGED
@@ -142,9 +142,7 @@
142
142
 
143
143
 
144
144
 
145
- ajaxGet = function ()
146
-
147
- ajaxGet = function () {
145
+ ajaxGet = function () {
148
146
 
149
147
  var req = new XMLHttpRequest();
150
148
 

5

内容の変更

2018/10/09 15:04

投稿

meron-pan
meron-pan

スコア44

test CHANGED
File without changes
test CHANGED
@@ -2,15 +2,11 @@
2
2
 
3
3
  pythonでcgiを作ってみたいと思い、実験としてajaxを使ってjavascriptでjsonファイルを送信し、それをオウム返しするcgiを作りました。
4
4
 
5
- 返ってきたデータをコンソールで確認しようとしたところエラーが発生したのですが、原因がわかりません。
5
+ 返ってきたデータをコンソールで確認しようとしたところエラーが発生しましたが、解決方法がわかりません。
6
6
 
7
7
  使っているのは、python3.7と、javaScript、html5です。(開発環境はwindows(Python3.7インストール済み)、ブラウザはfireFoxで検証)
8
8
 
9
-
10
-
11
- エラメッセ見るに、どうもpythonのコードの先頭で詰まっいるようなのですが、問題の個所を消しても、また次の行がエラーになってしま原因がわかりせん
9
+ カルサバー立ち上げ実験していま
12
-
13
-
14
10
 
15
11
 
16
12
 
@@ -30,17 +26,19 @@
30
26
 
31
27
 
32
28
 
29
+
30
+
31
+
32
+
33
33
  ### 発生している問題・エラーメッセージ
34
34
 
35
35
 
36
36
 
37
37
  ```
38
38
 
39
- XML ースエラー: 整形式にってません
39
+ クロスオリジン要求をブロックしました: 同一生成元ポリシにより、http://127.0.0.1:8000/cgi-bin/server.py にあるリモートリソーの読み込みは拒否されます (理由: CORS ヘッダー ‘Access-Control-Allow-Origin’ が足りない)[詳細]
40
-
40
+
41
- URL: file:///C:/Users/userName/Desktop/server/cgi-bin/server.py
41
+ クロスオリジン要求をブロックしました: 同一生成元ポリシーにより、http://127.0.0.1:8000/cgi-bin/server.py にあるリモートリソースの読み込みは拒否されます (理由: CORS 要求が成功しなかった)。[詳細]
42
-
43
- 行番号: 1, 列番号: 2:
44
42
 
45
43
  ```
46
44
 
@@ -76,6 +74,8 @@
76
74
 
77
75
  import io
78
76
 
77
+ import os
78
+
79
79
  import sys
80
80
 
81
81
  import cgi
@@ -104,6 +104,8 @@
104
104
 
105
105
  form = cgi.FieldStorage()
106
106
 
107
+ print("Access-Control-Allow-Origin: *\n")
108
+
107
109
  print('Content-Type: text/json; charset=utf-8\r\n')
108
110
 
109
111
  print(form)
@@ -128,7 +130,7 @@
128
130
 
129
131
  var xhr = new XMLHttpRequest();
130
132
 
131
- xhr.open('POST', 'cgi-bin/server.py', true);
133
+ xhr.open('POST', 'http://127.0.0.1:8000/cgi-bin/server.py', true);
132
134
 
133
135
  xhr.setRequestHeader('content-type', 'application/json');
134
136
 
@@ -140,28 +142,36 @@
140
142
 
141
143
 
142
144
 
145
+ ajaxGet = function ()
146
+
143
- ajaxGet = function () {
147
+ ajaxGet = function () {
144
148
 
145
149
  var req = new XMLHttpRequest();
146
150
 
147
- req.onreadystatechange = function () {
151
+ try{
148
-
152
+
149
- if (req.readyState == 4) {
153
+ if (httpRequest.readyState === XMLHttpRequest.DONE) {
150
-
154
+
151
- if (req.status == 200) {
155
+ if (httpRequest.status === 200) {
152
-
156
+
153
- console.log(req.responseText)
157
+ alert(req.responseText);
158
+
159
+ }else {
160
+
161
+ alert('リクエストに問題が発生しました');
154
162
 
155
163
  }
156
164
 
157
- } else {
158
-
159
- console.log("リクエストに問題が発生しました")
160
-
161
165
  }
162
166
 
163
167
  }
164
168
 
169
+ catch(e){
170
+
171
+ alert('例外を補足:'+e.description);
172
+
173
+ }
174
+
165
175
  }
166
176
 
167
177
 

4

ファイル構成追記

2018/10/09 15:01

投稿

meron-pan
meron-pan

スコア44

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,10 @@
22
22
 
23
23
   │ └  server.py
24
24
 
25
+ ├cgiserver
26
+
27
+ ├ajax.js
28
+
25
29
   └ index.html
26
30
 
27
31
 
@@ -44,7 +48,7 @@
44
48
 
45
49
  ### 該当のソースコード
46
50
 
47
-
51
+ cgiserver.py
48
52
 
49
53
  ```python
50
54
 
@@ -60,7 +64,7 @@
60
64
 
61
65
  ```
62
66
 
63
-
67
+ server.py
64
68
 
65
69
  ```python
66
70
 
@@ -110,6 +114,8 @@
110
114
 
111
115
  ```
112
116
 
117
+ ajax.js
118
+
113
119
  ```Javascript
114
120
 
115
121
 
@@ -208,6 +214,8 @@
208
214
 
209
215
  ```
210
216
 
217
+ index.html
218
+
211
219
  ```html
212
220
 
213
221
  <!DOCTYPE html>

3

ファイル構成追加

2018/10/09 10:27

投稿

meron-pan
meron-pan

スコア44

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,13 @@
16
16
 
17
17
  ファイル構成
18
18
 
19
-
19
+ server/
20
+
21
+  ├ cgi-bin/
22
+
23
+  │ └  server.py
24
+
25
+  └ index.html
20
26
 
21
27
 
22
28
 

2

ファイルの追加

2018/10/09 10:11

投稿

meron-pan
meron-pan

スコア44

test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,14 @@
12
12
 
13
13
 
14
14
 
15
+
16
+
17
+ ファイル構成
18
+
19
+
20
+
21
+
22
+
15
23
  ### 発生している問題・エラーメッセージ
16
24
 
17
25
 
@@ -32,6 +40,22 @@
32
40
 
33
41
 
34
42
 
43
+ ```python
44
+
45
+ # -*- coding: utf-8 -*-
46
+
47
+
48
+
49
+ import http.server
50
+
51
+
52
+
53
+ http.server.test(HandlerClass = http.server.CGIHTTPRequestHandler)
54
+
55
+ ```
56
+
57
+
58
+
35
59
  ```python
36
60
 
37
61
  #!/usr/bin/python3

1

開発環境について、追加

2018/10/09 10:07

投稿

meron-pan
meron-pan

スコア44

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  返ってきたデータをコンソールで確認しようとしたところエラーが発生したのですが、原因がわかりません。
6
6
 
7
- 使っているのは、python3.7と、javaScript、html5です。
7
+ 使っているのは、python3.7と、javaScript、html5です。(開発環境はwindows(Python3.7インストール済み)、ブラウザはfireFoxで検証)
8
8
 
9
9
 
10
10