2016-11-01 7 views
0

JQuery $ .getJSONからPythonコールバック関数に文字列を渡そうとしています。ただし、値は決してコールバックに到達しません。この問題に関しては、ドキュメントが私には分かりません。だから、私はStackOverflowの他の質問からの解決策だと思っています。

戻されない変数は、que_token(以下のコードを参照してください)です。このプロセスは、そうでない場合はJQueryへの道を作るPythonのメソッドの変数との間隔ループを介して首尾よく実行されている。..

<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 - 

答えて

0

Python関数update_alert()でフラスコrequest.args.get('que_token', '')を使用すると、この問題が解決されます。しかしこれは、渡された引数update_alertからque_tokenを取り除くのと同じくらい直接的ではありません。

だから私の質問に対する1つの解決策は次のとおりです。

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

誰かが前方に来て、私は元のメソッド(GETリクエストフラスコパラメータ経由)を使用することはできません理由を説明しない限り、私は私の答えとしてこれを使用します。

関連する問題