首页 > 解决方案 > Axios POST 在 Python Flask 中未正确解析

问题描述

介绍

嗨,我可以看到这个问题被问了多次,但不是一个正确的解决方案。

怎么了

GET 请求按预期工作。但是如果我使用 Vue.js 和 Axios 向烧瓶服务器发送 POST 请求。

使用 Postman 发送的带有 JSON 的 POST 也可以工作。

这是 axios 调用:

async submit() {
      await this.$axios.post("/bob/posting", { foo: "bar" }).then(response => {
        console.log(response)
      })
}

在烧瓶一侧:

from flask import Flask, request
from flask_cors import CORS,cross_origin
app = Flask(__name__)
cors = CORS(app, resources={r"//*": {"origins": "*"}})

@app.route('/bob/posting', methods=['POST'])
def handleRoute():
    print(request.is_json)
    return (
        request.args
        or request.form
        or request.get_json(force=True, silent=True)
        or request.data
    )

烧瓶侧的结果:

True 将被打印(表示一个 json 请求)

不会返回任何内容(此外,对于每个选项,我都尝试单独打印以防万一)

如何正确使用从烧瓶服务器上的 axios json 请求接收的变量?

标签: python-3.xvue.jsflaskaxiosflask-cors

解决方案


完全不明白为什么,但添加一个文本/纯内容类型修复了它..什么...

async submit() {
      await this.$axios.post("/bob/posting", { foo: "bar" }, {'content-type':'text/plain'}).then(response => {
        console.log(response)
      })
}

推荐阅读