私の小さなPython WebサービスでJqueryからPOSTをキャッチしようとしています。これがJavaScriptです:
function testpyserv(){
$.post('http://localhost/', {method : "preview", patient_id : 3} ,function(data) {
console.log(data);
});
}
そして、これがPythonのサーバー側です
def do_POST(self):
global rootnode
try:
ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
if ctype == 'application/x-www-form-urlencoded':
print "ctype"
query = urlparse.parse_qsl(self.rfile, pdict)
self.send_response(301)
self.end_headers()
#preview image
if query['method'] == 'preview':
print "in preview"
#parse data
patient_id = query['patient_id']
self.wfile.write("got the post")
except :
print "bug"
pass
私の問題は、query['method'] が期待どおり (この場合は「プレビュー」) を返さないことです。印刷しようとすると、「バグ」と表示され、どうすればよいかわかりません。 .
構文が間違っていると思います。私を助けてくれませんか?
編集:問題を解決する方法は次のとおりです:
length = int(self.headers.getheader('content-length'))
query = cgi.parse_qs(self.rfile.read(length), keep_blank_values=1)
Python: BaseHTTPRequestHandler ポスト変数を参照してください。