首页 > 解决方案 > 从 Java Script 获取请求后如何在 Flask 中渲染模板()?

问题描述

我会尽力解释我的问题。我有一个网络应用程序。我需要将一些 JSON 格式的数据从 Java Script 传递到 Flask 的端点。为此,我使用 Fetch API。数据按照我的意愿传递到端点,我可以在 python 的控制台中打印它,所以我确信它可以正常工作。这是JS发布的代码:

        var data = {
            x: 3
        };          
        
        fetch('/correctInvoice', {
            method: 'POST',
            body: JSON.stringify(data)
        })
        .then(function (response) {
            if (response.status !== 200) {
                console.log(`Status code: ${response.status}`);
                return;
            }
            response.json().then(function (data) {
                console.log(data);
            });
        })
        .catch(function (error) {
            console.log("Error: " + error);
        });

我的“/correctInvoice”端点看起来像这样:

@app.route('/correctInvoice', methods = ['POST'])
def correctInvoice():
     x = request.get_json(force = True)
     print("type of: " + str(type(x)))
     print(x)
     res = make_response(jsonify(x), 200)
     return res

我的问题是返回res会导致对 JS 中的 fetch API 做出响应,我需要在浏览器中显示它,就像没有request.get_json(force = True)一样。我只需要在浏览器中看到这个 JSON,我完全不知道该怎么做。

提前致谢!;)

标签: javascriptjsonflaskfetch-api

解决方案


我认为这将有助于在浏览器中返回 JSON 响应

return jsonify(res) # replace it with "return res"

端点中的最后一行


推荐阅读