我要做的是通过AJAX将Python中的函数的结果返回到我的javascript。目前,我正在获得这一反应,而我正在等待“真”或“假”
jquery:
var test = $.getJSON("/chk_chn", {
name: channel_name
});
alert(test.toSource())python:
@app.route("/chk_chn")
def chk_chn_unique():
"""Checks a name against all existing Channels in a Channel List. Returns True if name is unique, False otherwise"""
name = request.args.get("name")
for channel in Channels:
if channel.get_name() == name:
return jsonify(result=False)
return jsonify(result=True)发布于 2018-10-13 10:49:58
我有几个问题。
首先,我的Ajax查询没有任何回调函数。感谢罗里指出了这一点。代码现在如下。
$.getJSON("/chk_chn", { name: channel_name} )
.done(function( json ) {
console.log(json.result)
// Check Name Uniqueness
if (json.result === false) {
$("#chn_name").after('<span class="error">Channel name already exists</span>');
}
else {
// Check Channel Length
if (channel_name.length > 20) {
$("#chn_name").after('<span class="error">Channel Name exceeds maximum length</span>');
return false
}
else {
// Create Channel
socket.emit("create_channel", {"channel_name": channel_name})
// Close the modal
return true;
}
}
})
.fail(function(jqxhr, textStatus, error) {
var err = textStatus + ", " + error;
console.log("Request Failed: " + err);
});我的第二个甚至更愚蠢的问题是,Ajax查询是由一个存在于Modal中的按钮调用的。当单击按钮时,Modal被关闭,javascript在新页面上重新生成,从而完全放弃了我的查询。
我通过在表单上返回false来修复这个问题。
<form role="form" id="submit_channel" onsubmit="return false">发布于 2018-10-10 15:02:29
你试过:
return jsonify({result: True})发布于 2018-10-12 10:00:22
您丢失了回调函数,只需打印请求对象。
试试这个:
$.getJSON('/chk_chn', { name: channel_name })
.done(function (data) {
console.log(data);
});https://stackoverflow.com/questions/52743188
复制相似问题