尝试使用Java脚本从FLASK API请求数据(POST)

2024-09-27 00:22:10 发布

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

我目前正试图用Java脚本从我的API请求数据,但它不起作用。 每次我发帖时,我都会收到错误,即FLASK中的“TypeError:'NoneType'对象不可订阅”。 我的API代码:

#http://127.0.0.1:5000/fnd
@app.route('/fnd', methods=['POST'])
def fnd():
    content = request.json
    return jsonify(content['Text'])

在本文中,我使用jqueryajax请求

$(function ()
{
    var output = $('#output');
    $('#checkonfake').on('click',function(){
        var texttocheck = $('#texttocheck').val();
        var datad = {"Text": texttocheck}
        console.log(datad);
        if(texttocheck != ""){
              $.ajax(
                {
                    dataType: "json",
                    type: 'POST',
                    data: 
                    { 
                        datad
                    },
                    url: 'http://127.0.0.1:5000/fnd',
                    success: function (result) 
                    {
                        console.log(result);
                    },
                    error: function () 
                    {
                        console.log("error");
                    }
                });
    }
})
});

我有一个输入框和一个按钮,只要我按下按钮,请求就会被发送出去


Tags: textlogapijsonhttpoutputvarfunction
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:10

您可以通过字符串将代码更改为:

#http://127.0.0.1:5000/fnd
@app.route('/fnd', methods=['POST'])
def fnd():
    s_json = request.get_data(as_text=True)
    obj = json.loads(s_json)
    return jsonify(obj['Text'])

并将html代码更改为:

datad = {"aaa":"aaaa", "bbb":"bbb","Text":"Text"}
$.ajax(
    {
        dataType: "json",
        type: 'POST',
        data: JSON.stringify(datad),
        url: 'http://127.0.0.1:5000/fnd',
        success: function (result)
        {
            console.log(result);
        },
        error: function ()
        {
            console.log("error");
        }
    });

或者如果您使用json

@app.route('/fnd', methods=['POST'])
def fnd():
    return jsonify(request.form["Text"])
datad = {"aaa":"aaaa", "bbb":"bbb","Text":"Text"}
 $.ajax(
    {
        dataType: "json",
        type: 'POST',
        data: datad,
        url: 'http://127.0.0.1:5000/fnd',
        success: function (result)
        {
            console.log(result);
        },
        error: function ()
        {
            console.log("error");
        }
    });

顺便说一下:
我在flask.palletsprojects.com中找不到request.json的信息
所以我不知道;I don’我不知道这个参数的意思以及为什么它是无的

相关问题 更多 >

    热门问题