Ajax 查看函数返回的原因';无';?

Ajax 查看函数返回的原因';无';?,ajax,flask,Ajax,Flask,我正在尝试发送一个包含一些数据的简单POST请求。我正在flask中处理请求,并尝试返回相同的数据。但它总是返回“无” AJAX $(function(){ $('.btn').click(function(){ var roll_no = $(this).parent().parent().children(':first-child').html(); $.ajax({ url: '/delete_student', data: {id: roll_no}, type: 'POS

我正在尝试发送一个包含一些数据的简单POST请求。我正在flask中处理请求,并尝试返回相同的数据。但它总是返回“无”

AJAX

$(function(){
$('.btn').click(function(){
var roll_no = $(this).parent().parent().children(':first-child').html();
$.ajax({
  url: '/delete_student',
  data: {id: roll_no},
  type: 'POST',
  dataType: "text",
  success: function(response){
    console.log(response);
  },
  error: function(error){
    console.log(error);
  }
  });
 });
});
烧瓶

@app.route('/delete_student',methods=['GET','POST'])
def delete_student():
if request.method=='POST':
    roll_no = request.args.get("id")
    return str(roll_no)

request.args
包含GET请求的URL参数。由于您使用的是POST请求,因此它将默认为
None
。您应该改为使用
request.form
,如下所示:

if request.method=='POST':
    roll_no = request.form['id']
    return str(roll_no)

有关请求对象的更多信息,请参阅。

我原以为
request.form
只有在提交表单时才起作用,但事实证明它适用于任何POST请求。因此,
request.args
在发送GET请求时包含json格式的数据,
request.form
在发送POST请求时包含json格式的数据?实际上,request.args包含查询字符串的解析内容的多目录,request.form是POST请求中发送的表单值的多目录。这些和JSON是不同的数据类型。例如,您不能将字典或MultiDict保存到文件中,也不能在HTTP请求中发送它。你应该把JSON看作是一种数据格式,而不是一种抽象的数据类型。我有点困惑,我不能在这里问你所有的问题。请你给我一些有用的链接或其他关于这个话题的资料好吗?烧瓶文档没有帮助。试试谷歌搜索。可能在某个地方有一个有用的博客或教程。:)