javascript - 无法使用 getJSON 从 Flask Rest API 获取 Json

标签 javascript jquery python json flask

我是 Javascript 新手,遇到以下问题。所以我做了一个简单的 Flask API 返回一个简单的 json

flask 代码:

from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/test')
def test():
    return jsonify({"result":"wt is works!"})

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

我使用 gunicorn -k gevent -w 5 main:app 运行它,当我在浏览器中检查 localhost:8000/test 时,它正常返回 json

但是当我尝试使用 Jquery 获取它时,它什么也没有返回。我的 HTML 没有从 localhost:8000/test

获得任何值

我当前的 html 代码:

<html>
    <head>
        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
        <script type=text/javascript>
            $(document).ready(function(){
                $.getJSON(
                    "http://localhost:8000/test",
                    {format: "json"})
                    .done(
                        function(data) {
                            var plot_id = data.result;
                            $("#retval").html( "<strong>" + plot_id + "</strong>" );
                        }
                    );
            });
        </script>
    </head>
    <body>
        <div id="retval"></div>
    </body>
</html>

但是当我更改 url 并尝试从另一个 API 获取数据时,比如说从 https://jsonplaceholder.typicode.com/posts/1它有效。

我试过以下解决方案:

但是还是不行,谁能帮我看看是什么问题?

最佳答案

  • 定义要用作服务器端口的端口:app.run(host='0.0.0.0', port=8000)
  • 更重要的是,浏览器在函数getJSONajax 之间获取localhost:8000/test 的方式是不同的。它有一个关于'access-control-allow-origin' 的问题。在 flask 中,您可以使用包 flask-CORS完成工作。

关于javascript - 无法使用 getJSON 从 Flask Rest API 获取 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45932884/

相关文章:

python - 从 dask 数据框中的日期时间系列获取年和周?

python - 在 python 单元测试中初始化记录器

javascript - 通过javascript将参数传递给python函数

javascript - 用户使用 Parse 注册时出错

javascript - id ="nodeName"在html5中是保留的吗?

javascript - JQuery 验证插件 : How do I get it to revalidate

python - 将查询合并为一个,然后按日期排序

Javascript 的 SetTimeout、SetInterval 和 ClearInterval 在 c# 中的等价物

javascript - 为什么在使用片段时可以避免使用键,而在使用数组时却不能?

javascript - 是否可以访问和读取 Electron 应用程序的本地存储