Flask Ajax POST数据范围

时间:2018-03-21 21:33:01

标签: ajax flask

我需要渲染一个Flask模板,但是ajax数据只能在POST if语句中访问,并且在发布数据后调用get direct时不会显示。

我在这里工作ajax

$.ajax({
        type: 'post',
        url: "/query",
        dataType: 'text',
        data: JSON.stringify({hostname:hostname, bf_id:computerID}),
        contentType: 'application/json;charset=UTF-8',
        success: function () { 
            window.location.href = "/query";
        }
        });

});

数据已成功发布,重定向正在运行。但是当重定向调用函数来呈现模板时,无法检索发布的ajax。

@app.route('/query', methods=["GET", "POST"])
def query():
hostname=""
if request.method == "POST":
    #these values only exist in if statement
    hostname = request.json['hostname']
    bf_id = request.json['bf_id']

return render_template('query.html', hostname=hostname)

我使用了错误的工作流程吗?

1 个答案:

答案 0 :(得分:0)

  

我使用了错误的工作流程吗?

  1. 您使用数据发出POST请求。
  2. 您得到的回复可以处理该数据
  3. 然后在没有数据的情况下发出GET请求
  4. 您收到的回复无法处理其没有的数据
  5. Ajax的目的是在不加载整个新页面的情况下发出HTTP请求

    如果要加载整个新页面,请使用常规表单提交,而不涉及JavaScript。