试图POST json数据到python flask服务器的问题

Problems in trying to POST json data to python flask server

本文关键字:flask 服务器 问题 python POST json 数据 试图      更新时间:2023-09-26

我正试图将json发送到我的flask服务器,但Post请求总是失败。我就是这样做的,你知道我做错了什么吗?

jQuery.ajax({
    url:'/someLink',
    method:'POST',
    data:JSON.stringify({"sampleKey":"Value"}),
    success:function(data){
        console.log(data);
    },
});

我的flask服务器看起来像

@app.route('/someLink', methods=['POST'])
def someFn():
 sampleKey = str(request.form['sampleKey'])

我相信有一些数据序列化问题,因为下面的请求工作

jQuery.post('/someLink',{"sampleKey":"Value"},function(data){console.log(data)});

jQuery的.ajax接受普通对象或查询字符串作为数据参数。它不接受JSON编码字符串。

默认情况下,它将数据作为'application/x-www-form-urlencoded; charset=UTF-8'发送,这意味着除非您像Ian建议的那样显式覆盖它(并且服务器期望它),否则您不应该传递JSON编码的字符串。

您可以通过传递对象轻松解决此问题。

来自API

类型:纯对象或字符串

要发送到服务器的数据。如果还不是字符串,则将其转换为查询字符串。它被附加到get请求的url中。请参阅processData选项来防止这种自动处理。对象必须是键/值对。如果value是Array, jQuery将基于传统设置(如下所述)的值序列化具有相同键的多个值。

jQuery.ajax({
    url:'/someLink',
    method:'POST',
    data:{"sampleKey":"Value"},
    success:function(data){
        console.log(data);
    }
});