【问题标题】:ajax GET type not passing data to flaskajax GET类型不将数据传递给烧瓶
【发布时间】:2021-08-31 05:17:51
【问题描述】:

我有一个方法尝试使用 GET 方法将变量传递给烧瓶。这是来自 jquery 和 flask 的代码:

    const impacttoolbtn = document.querySelector(".changingtoolbtn")
    impacttoolbtn.addEventListener("click", function (){
      $.ajax({
        url: "{{ url_for('impact') }}",
        contentType: "application/json",
        data: JSON.stringify(login_bool),
        dataType: "json",
        success: function(response) {
            console.log(response);
        },
        error: function(err) {
            console.log(err);
        }
      });
    })

其中 login_bool 为真或假。

和烧瓶:

@application.route('/impact', methods=["GET"])
def impact():
    data = request.get_json()
    print(data)
    print("hi")

    return render_template('/impacttool.html')

我在打印(数据)上得到“无”,而如果我在 ajax 上而不是默认的 GET 上进行 POST,我会得到我需要的正确数据。为什么会发生这种情况?我很想得到一些见解,非常感谢。

【问题讨论】:

    标签: python jquery ajax flask


    【解决方案1】:

    你还没有在ajax调用中定义方法类型。

    $.ajax({
            type:"GET",
            url: "{{ url_for('impact') }}",
            contentType: "application/json",
            data: JSON.stringify(login_bool),
            dataType: "json",
            success: function(response) {
                console.log(response);
            },
            error: function(err) {
                console.log(err);
            }
          });
    

    【讨论】:

    • 能否添加有问题的login_bool,可以使用request.args.get("key_of_login_bool")
    • 嘿! login_bool 只是 const login_bool = true;或虚假;我试试看!
    • 这样做data:{"login_boo_var":login_bool} 并在烧瓶中request.args.get("login_bool_var")
    • 嘿,谢谢你的彻底回答,现在数据发送到后端,但我也遇到了这个问题,我有:``` data = request.args.get("bool" ) print(data) if(data == 'false'): print('test') return redirect('/login') else: ``` 而且它没有重定向到登录,你知道为什么吗?请和谢谢你
    • 你在 javascript 中的 bool 中传递了什么,如果你使用了 javascript false 尝试使用data == False
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2021-02-28
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多