JSON 配列とオートコンプリート機能を使用して、都市のリストを含むフォームを実装しようとしています。
私の ajax 呼び出しは成功し、予期される成功アラートが表示されますが、まだ JSON 配列データを取得していません。
問題は、私のSuggest_json_application関数が「if form.has_key('term')」ステートメントで失敗し、「フォームにキーがありません」というメッセージが表示されることです。
キーを使用して、ajax呼び出しを介してフォームデータを関数に適切に渡すにはどうすればよいterm
ですか?
HTMLフォーム
</head>
<body>
<form>
<fieldset><legend>Cities</legend>
<input type='text' name='term' id='term'>
</form>
JQuery
$('document').ready(function() {
var term = $('#term').val();
$.ajax({
url: "/suggestjson",
type: "POST",
dataType: "json",
data: JSON.stringify({'term': term}),
success: function (data) {
alert('success');
console.log( data );
}
});
});
ウェブサーバー
cities = ['New York', 'London', 'Los Angeles',
'Paris', 'San Francisco', 'Adelaide']
if environ['PATH_INFO'] == "/suggestjson":
return suggest_json_application(environ, start_response)
def suggest_json_application(environ, start_response):
//Return JSON array of completions for a city name
form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ)
if form.has_key('term'):
print "form has key"
q = form.getvalue("term", "")
matches = [c for c in cities if c.lower().startswith(q.lower())]
else:
print "form has no key"
matches = []
return json.dumps(matches)