Pythonスクリプトでajax-requestに答えようとしています。ajax-request は、次のように json-object を送信します。
$.ajax({
url : "cgi-bin/mycgi.py",
type : "POST",
data : JSON.stringify(MyJSONObject),
success : function() {...do something},
error : function(xhr,errmsg,err) {
alert(xhr.status);
}
}
私の Python スクリプト mycgi.py には次の行があります。
import sys
import simplejson as json
...
myjson = json.loads(sys.stdin.read())
#do something with the object
mystatus = "200 OK"
sys.stdout.write("Status: %s\n" % mystatus)
sys.stdout.write("Content-Type: application/json")
sys.stdout.write("\n\n")
sys.stdout.write(json.dumps(myjson))
基本的にすべて正常に動作します。私のブラウザは応答を受け取り、ステータスが「200 OK」に設定されている場合、要求が成功したことを認識し、返されたオブジェクトで成功部分のコマンドを実行します。
しかし、2 つの質問があります。
- スクリプトがエラー メッセージでエラーを返すようにするにはどうすればよいですか? 「202 OK」の代わりに「404」を返すことができ、ブラウザはエラーがあることを認識します。しかし、エラーメッセージを返す方法がわかりません。このメッセージを応答のヘッダーに入れる必要がありますか?
- クライアントとサーバー間の私の通信方法が「単純すぎる」かどうか、そしておそらくリスクが大きすぎるかどうかを知りたいです。ここで同様の問題に関する他の質問を読んだとき、人々が「リクエスト」のようなpython-modulesで作業したり、BaseHTTPRequestHandlerからクラスを派生させたりすることがわかりました。Pythonスクリプトをできるだけシンプルに保ちたいです。なんらかの理由で、おそらく別の道に進む必要があるのでしょうか?
どうもありがとう!