Flask - 将参数传递给JQuery $ .getJSON回调

时间:2016-11-01 22:18:06

标签: jquery python-3.x flask

我正在尝试将字符串传递给我的JQuery $ .getJSON中的python回调函数。但是,该值永远不会达到回调。关于这个问题,我不清楚文档。所以我已经看到了我认为是其他StackOverflow问题的解决方案。

未传回的变量是que_token(参见下面的代码)。此过程通过其间隔循环成功运行,其中python方法中的变量进入JQuery ..

<script type=text/javascript>
var interval = setInterval(
  function()
  {
    $.getJSON('/_update_alert',  { que_token: "Passing as None" }, function(data) {
      $("#alert-msg").text(data.result.alert_msg);
      $("#alert-type").attr("class", data.result.alert_type)
        var stopSession = data.result.End
        document.getElementById("log").innerHTML = document.getElementById("log").innerHTML +
            data.result.message_log + "\n"
        if (data.result.End == "True") {
            clearInterval(interval);
    }

    });
    return false;
  },
  2000);
</script>

@app.route('/_update_alert/<que_token>')
@login_required
def update_alert(que_token=None):
    if que_token is None:
        # que_token should not be None - ERROR
        que_token = session['que_token']
    alert_data = {}
    .....
    return jsonify(result=alert_data)

python跟踪显示值que_token正在返回..但是我的python函数'update_alert'没有把它拿起来。

127.0.0.1 -[01/Nov/2016 14:58:02] "GET /_update_alert?que_token=Passing+as+None HTTP/1.1" 200 -

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

在我的python函数update_alert()中使用flask request.args.get('que_token', '')解决了这个问题。但这并不像从函数update_alert传递的参数中选择que_token一样直接。

因此我的问题的一个解决方案是:

@app.route('/_update_alert')
@login_required
def update_alert():
    que_token = request.args.get('que_token', '')
    .....
    alert_data = {}
    .....
    return jsonify(result=alert_data)

我将使用此作为我的答案,除非有人挺身而出并解释为什么我不能使用原始方法(通过Get request flask参数)。