Flask Ajax调用,没有错误,但没有收到响应

2024-10-01 22:39:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Flask,对一个视图进行Ajax调用,该视图在坐标范围内查找一些数据,我只希望能够返回这些数据。它成功地到达视图,查询数据库并返回数据,但JavaScript代码没有收到响应

Ajax调用如下所示:

    $.ajax({
      type: "POST",
      dataType: "application/json",
      url: "/getsignswithin",
      data: dataToSubmit,
      success: function(data) {
        console.log(data);
      }
    });

烧瓶路径如下所示:

@app.route("/getsignswithin", methods=['POST'])
def signs_within():
    data = request.get_json(force=True)

    signs = db.signs.find({
      'location': {
         '$geoWithin': {
            '$box': [
              [ data['extent'][0],data['extent'][1] ],
              [ data['extent'][2],data['extent'][3] ]
            ]
         }
      }
    })
    print(dumps(list(signs)))
    #return jsonify(success=True)
    return dumps(list(signs)), 200, {'ContentType':'application/json'}

打印(转储(列表(符号))显示数据,但在Ajax的成功部分没有收到任何内容。不会向浏览器控制台或Python控制台报告任何错误

我尝试了return-jsonify(success=True),只是想看看它是否返回了任何东西,但这也不起作用

控制台输出:

127.0.0.1 - - [07/Jul/2020 17:06:12] "POST /getsignswithin HTTP/1.1" 200 -
[<listdatahere>]
127.0.0.1 - - [07/Jul/2020 17:06:13] "POST /getsignswithin HTTP/1.1" 200 -

Tags: 数据视图jsontruedatareturnapplicationajax
2条回答

将数据类型更改为“json”,而不是“application/json”,可以让它返回数据。感谢newbie99提供有关错误回调的建议,使我能够识别问题。我会记得在以后的故障排除中这样做

  $.ajax({
      type: "POST",
      dataType: "json",
      url: "/getsignswithin",
      data: dataToSubmit,
      success: function(data) {
        console.log(data);
      }
    });

您需要按如下方式返回:

json.dumps({'data': list(signs)}), 200, {'ContentType':'application/json'} 

相关问题 更多 >

    热门问题