【问题标题】:Ajax GET request confusion [duplicate]Ajax GET请求混淆[重复]
【发布时间】:2015-06-17 08:53:50
【问题描述】:

我对 javascript/ajax/flask 非常陌生,正在尝试从我的烧瓶服务器获取数据。我正在渲染 client.html 模板,需要从 /data 路由获取数据。

app = Flask(__name__)

@app.route("/data", methods=["GET"])
def submit_handler():
    return 10 #example value

@app.route('/client')
def page():
    return render_template('client.html')

if __name__ == '__main__':
    app.run()

在client.html中:

 var output = $.ajax({
      url: "/data",
      type: "GET",
 })

 window.alert(output)

窗口警报输出:

 [object Object]

为什么不输出 10?对不起,如果这个问题太基本了,但类似的搜索并没有帮助我理解数据请求。

【问题讨论】:

  • 附带说明,我建议使用浏览器控制台而不是警报进行调试。对于基本用法,这是通过console.log() 完成的(它本身已经提供的不仅仅是警报),但console API 有许多其他实用程序...
  • 它返回一个 python Int 对象。你想达到什么目的?您最好将json 回复到您的ajax 电话。为此包括from flask import jsonify,然后是return jsonify({'number':10})
  • 另一方面,如果你想学习烧瓶,这个教程非常好,涵盖了很多 - blog.miguelgrinberg.com/post/…
  • 谢谢,会检查一下。

标签: javascript python ajax flask


【解决方案1】:

简单地试试这个

$.get( "/data", function(data, success){
window.alert(data)
})

编辑:

@app.route("/data", methods=["GET"])
def submit_handler():
    return "10" #str(10)

原因

在 Flask 中,视图必须返回以下之一:

  • 一个字符串
  • 一个响应对象(或子类)
  • (字符串、状态、标题)或(字符串、状态)的元组
  • 有效的 WSGI 应用程序

了解更多Flask view raises TypeError: 'bool' object is not callable

【讨论】:

  • 我收到“GET /data HTTP 1.1/”500 错误。
  • 试试return "10"。也试试app.run(debug=True) 在开发中
【解决方案2】:

试试这个,

$.ajax({
  url: "/data",
  type: "GET",
  datatype : "text",
  success: function(output){
      console.log(output);
  }
})

或者通过检查开发人员工具中的响应来检查返回的对象类型。使用 F12 在浏览器中打开开发者工具,您可以在其中看到返回的响应。

【讨论】:

    猜你喜欢
    • 2019-03-28
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    相关资源
    最近更新 更多