当前位置: 首页 > 知识库问答 >
问题:

烧瓶request.get_json()没有收到任何来自$. post()请求[重复]

吕晟睿
2023-03-14

我试图在JavaScript和Python之间进行数据通信,我是通过使用JSON变量来实现的,但似乎每当我从JavaScript发出POST请求时,request。Python接收器方法中的get_json()在我打印请求时没有拾取任何内容并打印None。获取json()

Python方法将返回一些东西给JS,但它总是None。我的<代码>$是否做错了什么。post()方法?

javascript$. post()调用:

var items = {"robotCoor": {"robot_x": 1, "robot_y": 1},
         "gridParams": {"goal_y": 0, "size_x": 16, "size_y": 16, "goal_x": 0},
         "obsParams": {"obs_x3": 0, "obs_x4": 0, "obs_y4": 0, "obs_x2": 0, "obs_x1": 0, "obs_y1": 0, "obs_y2": 0, "obs_y3": 0},
         "aiParams": {"layers": 0, "learning_rate": 0, "speed": 0}
     };
var stuff = JSON.stringify(items);
console.log(stuff); #prints the correct thing
$.post("receiver", stuff, function( data ) {
    console.log(stuff); #prints the correct thing
    alert("Data: " + data); #alerts with "Data: None"
});

Python接收器方法:

@app.route("/receiver", methods = ["POST"])
def receiver():
    if request.method == "POST":
        stuff = request.get_json()
        print(stuff) #prints None
        stuff = str(stuff)
        print(stuff) #prints None

        return stuff

共有1个答案

林和煦
2023-03-14

在JavaScript中,将请求的Content-Type设置为Application/json。否则get_json将始终返回No。做到这一点的一种方法是做以下[1]

$.ajaxSetup({
  contentType: "application/json; charset=utf-8"
});

或者,您可以尝试使用get\u json(force=True)[2]强制Flask忽略内容类型

 类似资料:
  • 我遇到了一个问题,我的javascript/python脚本。我想做的是传递一个字符串到python烧瓶,这样我以后可以使用它。当我点击按钮发送字符串时,没有错误,但什么也没发生。我基本上是一个自学成才的程序员,所以如果我的脚本格式不正确,我道歉! Javascript: 蟒蛇瓶: 我希望能够看到打印到控制台或命令提示符的字符串,我假设print()是正确的方法?欢迎任何帮助,谢谢:)

  • 使用烧瓶构建应用程序。该应用程序使用表结构来显示数据。它的部分功能是从用户指定的表行收集数据。为此,我在每一行上放置了一个按钮,执行一些js。js从行中收集信息,使用JSON. stringify()转换为json对象,并向相关的flask url发出post请求。 从js文件向浏览器控制台记录jsonize对象的值表明它是正确形成的。发布请求联系正确的路由,但是request.get_json(

  • 我尝试使用axios对烧瓶服务器进行POST: 现在是烧瓶的部分 但是,我最终会出现以下错误: 无法加载XMLHttpRequesthttp://127.0.0.1:5000/test.对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”标头。起源'http://localhost:3000因此不允许访问。 为什么?我将按照建议设置标题

  • 客户端代码: 服务器代码: 问题是我的用户名和密码总是空的。 我还尝试使用: 和 打印内容时,我有: 编辑: 我添加了json。转储和使用请求。获取_json(),它就成功了

  • 我在这里遵循烧瓶教程: http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world 我达到了我尝试的程度/跑py和我得到: 这看起来类似于: ImportError:没有名为flask的模块 但他们的解决方案没有帮助。作为参考,我确实有一个名为flask的文件夹,其中一位用户提到该文件夹可能会导致问题

  • 我想要能够得到数据发送到我的烧瓶应用程序。我尝试访问,但它是一个空字符串。如何访问请求数据? 这个问题的答案导致我在Python Flask中询问Get raw POST body next Content-Type header,这是关于获取原始数据而不是解析数据的。