ajax GET类型不将数据传递给烧瓶

Posted

技术标签:

【中文标题】ajax GET类型不将数据传递给烧瓶【英文标题】:ajax GET type not passing data to flask 【发布时间】: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,我会得到我需要的正确数据。为什么会发生这种情况?我很想得到一些见解,非常感谢。

【问题讨论】:

【参考方案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

以上是关于ajax GET类型不将数据传递给烧瓶的主要内容,如果未能解决你的问题,请参考以下文章

意图不将数据传递给 AlarmManager 的 BroadcastReceiver

尝试仅使用 html 按钮将数据传递给烧瓶应用程序

如何使用 ajax 将数据传递给控制器​​并相应地查看数据

通过 AJAX 将数据传递给 Laravel 控制器

使用 jquery ajax 将数据传递给 php 的问题

如何使用json将数据传递给ajax函数?