当前位置: 首页 > 面试题库 >

如何使用从Flask中的Ajax发布的数据?

祁烨
2023-03-14
问题内容

我无法从jquery ajax获取数据发布。

$('#clickme').click( function() {
    var data = save_input(); // data

    data['_sid'] = $survey_id;  // survey_id injected from flask
    data['_uip'] = $user_ip; // user_ip injected from flask, request.remote_addr

    $.ajax({
        type : "POST",
        url : "{{ url_for('mod.load_ajax') }}",
        data: JSON.stringify(data),
        contentType: 'application/json;charset=UTF-8',
        success: function(result) {
            console.log(result);
        }
    });

    console.log(data);
});

从代码来看,data是一个javascript对象,例如

{
    'foo' : 'foo',
    'bar' : 'bar',
    'fo_' : 42,
}

我在烧瓶中尝试做的是:

@mod.route('/load_ajax', methods=["GET", "POST"])
def load_ajax():
    if request.method == "POST":
        # load _sid and _uip from posted JSON and save other data
        # but request.form is empty.
        # >>> request.form
        # ImmutableMultiDict([]) 
        return str(request.form)

看到,已发出ajax请求,但未提交任何数据。我console.log(data)使用ajax,因此可以看到datajquery 中的变量中确实有一些有意义的数据。但是ajax视图中的request.form为空。我的数据在哪里提交?


问题答案:

尝试

 $.ajax({
    type : "POST",
    url : "{{ url_for('mod.load_ajax') }}",
    data: JSON.stringify(data, null, '\t'),
    contentType: 'application/json;charset=UTF-8',
    success: function(result) {
        console.log(result);
    }
});

然后从服务器上,你可以像这样引用数据中的变量:

request.json['foo']

由于指定的内容类型是application/json数据所在的位置request.json



 类似资料:
  • 问题内容: 我无法从jquery ajax获取数据发布。 从代码来看,是一个javascript对象,例如 我在烧瓶中尝试做的是: 看到,已发出ajax请求,但未提交任何数据。我使用ajax,所以我可以看到jquery 中的变量中确实有一些有意义的数据。但是ajax视图中的request.form为空。我的数据在哪里提交? 问题答案: 尝试 然后从服务器上,您可以像这样引用数据中的变量: 由于指定

  • 问题内容: 我想从变量“单击”中检索数据,以便可以在Flask的SQL查询中使用它。 jQuery查询 烧瓶/ Python 问题答案: 您可以这样在ajax请求中编写有效负载: 在烧瓶端点中,可以按以下方式提取值:

  • 问题内容: 当我尝试通过Ajax(jQuery)将数组发送到Django时 JavaScript代码: 我尝试读取数组: 蟒蛇: 我只得到最后一个数组值: 我究竟做错了什么? 问题答案: 您正在寻找的 https://docs.djangoproject.com/zh-CN/2.0/ref/request- response/#django.http.QueryDict.getlist

  • 问题内容: 我正在尝试在Django中使用jQuery / AJAX发布数据,并且遇到了麻烦。当我运行下面的代码并单击“测试”按钮时,整个页面将再次重新加载,这不是我想要的(这就是我使用AJAX的原因)。 我也无法确认AJAX请求正在进入Django视图。 编辑:我对return false和进行了编辑。无法加载新页面,但仍无法在该字段中看到更新的文本。我不确定是否正在发送数据。我在控制台中看到:

  • 我有一个在客户端使用自动完成功能的谷歌地图查询——我试图在用户选择“place”对象后将其转移到服务器上——我可以在客户端解析它,但我认为在服务器端进行更容易。我通过浏览器“网络”检查验证它是否通过正确的json对象发送,但服务器端我无法获得正确的对象。我尝试了各种请求的排列。*我可以找到它,但要么一个也得不到,要么一个

  • 问题内容: 我正在使用Flask创建一个网站,并且希望能够使用页面中的数据执行python代码。我知道我可以简单地使用表单,但是它是一个页面,它在接收用户输入时会不断更新,并且每次发生任何事情时都要重新加载页面,这是一个很大的麻烦。我知道我可以在javascript内执行操作,但是如何使用js变量在javascript内执行操作?到目前为止,我唯一能想到的就是用js更新外部数据库(如MongoDB