簡體   English   中英

嘗試使用 Java 腳本從 FLASK API 請求數據(POST)

[英]Trying to Request Data (POST) from FLASK API with Java Script

我目前正在嘗試從我的 API 中使用 Java 腳本請求數據,但它不起作用。 每次我發布錯誤消息時,FLASK 中的“TypeError: 'NoneType' object is not subscriptable”。 我的 API 的代碼:

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

對於帖子,我正在使用 JQuery AJAX 請求

$(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");
                    }
                });
    }
})
});

我有一個輸入框和一個按鈕,一旦我按下按鈕,請求就會被發送出去。

您可以通過字符串將代碼更改為此:

#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 的信息
所以..我不知道這個參數的含義以及為什么它沒有

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM