Flask,从AJAX

时间:2016-04-14 16:46:25

标签: jquery python ajax

我想尝试将一个字符串从AJAX传递给Flask,正在接收请求,但似乎没有任何数据通过

AJAX:

function scan(){
    var i = $(".btn.btn-default").attr("id");
    var id = i.toString();
    console.log(id);
   $.ajax({
     type: "GET",
     url: '/scan',
     data: id,
     success: function(data) {

     console.log(data);
   }
}); 
}

Python / Flask:

if request.method == 'GET':
    logger.log('request received') #this is printing out successfully
    a = request.data
    if a == 'mystring':
        return 'Successful'

我做错了什么?它必须非常简单。

1 个答案:

答案 0 :(得分:1)

引用jQuery documentation

  

数据   键入:PlainObject或String或Array要发送到的数据   服务器。如果不是字符串,它将转换为查询字符串。   它附加到GET请求的URL。请参阅processData选项   防止这种自动处理。 对象必须是键/值对。如果   value是一个数组,jQuery使用相同的键序列化多个值   基于传统设置的价值(如下所述)。

由于您没有向$.ajax提供键/值对,因此没有数据发送到服务器。相反,请尝试data: {id: id}

然后,在Flask中,您可以访问此值:request.args['id'](或request.args.get('id', None)以提供默认值None)。

HereRequest.args的文档。)