我正在尝试使用 JSON 数组和自动完成功能来实现一个包含城市列表的表单。
我的 ajax 调用成功并给出了预期的成功警报,但我仍然没有得到 JSON 数组数据。
问题是我的Suggest_json_application函数在'if form.has_key('term')'语句中失败并给出消息“form has no key”。
如何通过 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)