无法获取getJSON以显示Flask应用生成的JSON

时间:2019-01-09 15:36:56

标签: jquery flask

这是设置: 我正在从Google Compute Engine VM运行Flask应用程序。我想从另一台服务器(github.io页面,了解其价值)从VM中获取信息。 VM数据目前为json格式,并且是静态的,但最终将被编写脚本以进行更新。

问题:ajax / jquery能够访问请求的页面,但是似乎未返回任何数据。

当我从本地主机或生产环境运行请求时,可以在VM活动日志上看到GET操作弹出。我尝试将脚本作为按钮运行,在文档准备就绪时以及在页面加载时运行,在每种情况下,它似乎都命中了VM,但不返回数据。

当我直接在浏览器中导航到地址时,JSON正常显示,如下所示:

f.add(p, BorderLayout.CENTER);

我对此很陌生,所以很可能我遗漏了一些明显的东西。

我尝试了很多事情

  • https://stackoverflow.com/questions/5817460/json-data-not-displayed-using-getjson
  • https://stackoverflow.com/questions/44465082/json-not-grabbed-by-getjson
  • https://stackoverflow.com/questions/24735810/python-flask-get-json-data-to-display
  • https://stackoverflow.com/questions/12435297/how-do-i-jsonify-a-list-in-flask
  • https://stackoverflow.com/questions/3964552/how-do-i-get-at-the-raw-json-response-from-a-jquery-getjson-request

瓶号:

{"otherstuff":"somemorethings","stuff":"Some Number"}

(我在有和没有CORS的情况下都尝试过此操作)

HTML:

import flask
from flask_cors import CORS

app = flask.Flask(__name__)
CORS(app)

@app.route('/', methods=['POST', 'GET'])

def hello():
    return flask.jsonify(stuff='Some Number', otherstuff="somemorethings")

if __name__ == '__main__':
    app.run(host = '0.0.0.0', port=80)

我意识到这有3种不同的方式,但是由于我是新手,所以我想保留潜在的解决方案,以防其中一种可行。我已经分别尝试了每个。

例如,基本的append(“ part 2a”)确实有效。

所需结果是显示在github.io页面上的Flask结果中的文本,例如“现在我想谈谈数字”。

如果有帮助,我实际上只需要在页面上显示这个数字即可,因此,如果有更简单的方法可以做到,那么我会不知所措。

更新:要添加示例时,它才开始工作。我不确定发生了什么变化,但是看起来就像使用<!DOCTYPE html> <html> <head> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script type=text/javascript> $(document).ready(function(){ $.get( "http://[the_vm_external_ip]/", {format: "json"}) .done( function(data) { $("#retval").html( "<strong>" + data.stuff + "</strong>" ); } ); }); </script> <script> $(document).ready(function(){$("#where").append("part 2a");}) </script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> $(document).ready(function() { $("button").click(function () { $.getJSON( "http://[the_vm_external_ip]/", function (a) { $("#where").append(a.stuff); }); }); }); </script> </head> <body> <button>Get JSON data</button> <div id="where">teste</div> <div id="retval"></div> </body> </html> 而不是直接引用var plot_id = data.stuff一样。工作代码:

data.stuff

此代码按预期显示 Some Number 到retval div。

0 个答案:

没有答案