由Ajax POST触发的功能完成后,如何重定向到网页

时间:2019-09-05 22:31:19

标签: python jquery ajax flask

我正在使用Flask构建WebApp。作为应用程序的一部分,我下面有一些数据表和一些执行某些操作的按钮。通过获取具有属性<tr>的表的class="selected"元素,并将id属性的值传递到烧瓶路径,这些按钮起作用。

这是相关的javascript:

function submitDelete(action) {
  var data = buildIDPayload(); // which returns a dictionary in form {'ids':[1,2,3]}

  $.ajax({
    method: "POST",
    url: "/delete",
    data: JSON.stringify(data),
    contentType: 'application/json;charset=UTF-8',
    success: console.log('Data Submitted')
  });

  clearSelections();
};

这是将数据发送到的Flask路线:

@app.route('/delete', methods=['GET', 'POST'])
@login_required
def delete_users():

    data = request.get_json(force=True)

    for i in data['ids']:
        u = User.query.filter_by(id=i).first()
        db.session.delete(u)
        db.session.commit()

    return redirect(url_for('users'))

数据库功能都可以正常工作,但是我正在努力使页面有序地刷新。如果我通过将刷新设置为success: location.href = '/users'来将刷新设置为ajax POST中成功参数的一部分,则刷新触发之前完成烧瓶路由,删除传递给的用户它,这意味着它们仍然存在于刷新页面的表中。另一方面,如果我不使用succcess参数来触发刷新,而是依靠delete_users()返回烧瓶redirect……根本没有发生任何事情,那就永远不会刷新(尽管删除正常)。

所以;我如何获得ajax或flask重定向到URL,然后将 传递给ajax发布到其的瓶路径完成处理?

0 个答案:

没有答案