为什么我的flask应用程序不能从javascript接收json?

2024-10-01 00:27:05 发布

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

我尝试将json数据从JavaScript发送到flaskapp。但是烧瓶不接受JavaScript发送的json数据,请求为null,哪里出错了?在

这是我的瓶码。在

@main.route('/getjson', methods = ['GET', 'POST'])
def getjson():
    a = request.json
    return jsonify(user = a)

这是我的javascript代码。在

^{pr2}$

页面上返回的数据始终为空。 请求.arg.get也不起作用。在


Tags: 数据jsonget烧瓶mainrequestdefjavascript
1条回答
网友
1楼 · 发布于 2024-10-01 00:27:05

Flask的request.json需要application/json内容类型,但默认情况下$.ajax设置{}。设置请求时的内容类型。在

$.ajax({
        url: "{{ url_for('main.getjson') }}",
        type: "POST",
        data: JSON.stringify({
            "n1": "test1",
            "n2": "test2",
            "n3": "test3"
        }),
        contentType: "application/json",
        dataType: "json",
        success: function(data){
            var a = data.user
            var texthtml = "<p>" + a + "</p>"
            $("#result").html(texthtml)
        }
    });

或者,发送对象本身,而不发送JSON.stringify()

^{pr2}$

这将以表单编码的形式发送数据,因此您可以使用Flask中的request.form来读取它。在

dataType是您希望从服务器接收的数据类型,contentType是发送到服务器的数据类型。在

参见:

相关问题 更多 >