Flask无法从Javascript POST读取JSON

时间:2018-11-05 18:00:42

标签: javascript python flask

我正在尝试创建一个将JSON对象发布到Python Flask应用程序的函数。我用

调用下面的postData方法
postData(baseUrl+"/classify", {'query' : post}, callback) 

其中post是一个字符串,callback是我的回调函数。下面是我的postData方法。

function postData(url, data, callback) {
  // Default options are marked with *
    return fetch(url, {
        method: "POST",
        headers: {
            "Content-Type": "application/x-www-form-urlencoded",
        },
        body: JSON.stringify(data),
    })
    .then(function(response) {
        // Examine the text in the response
        response.json().then(
            function(responseData) {
                callback(responseData)
            }).catch(
            function(err) {
                console.log(data)
                console.error(err)
            });
    }).catch(function(err) {
        console.log(data);
        console.error(err);
    });
}

但是,当我这样做时,在烧瓶中

try:
    query = request.form['query']
except:
    print("Could not find query")
    print(request.form)

要从POST请求中获取数据,将捕获异常并

ImmutableMultiDict([('{"query":"My Query String"}', '')])

打印到控制台。如果我尝试使用Postman调用相同的终结点,那么一切正常,因此我不确定在提取请求中做错了什么,该请求不允许Python正确访问表单数据。我尝试设置

"Content-Type":"application/json"

但是我得到了相同的结果。

0 个答案:

没有答案