首页 > 解决方案 > 无法访问 request.json 内容

问题描述

我正在使用 axios 使前端(React)与后端(flask)通信。我在获取 request.json 数据时遇到问题。这是示例代码:

app.py

from flask import Flask, Blueprint
from api2.blueprints import api2
from flask_cors import CORS
app = Flask(__name__)

app.register_blueprint(api2)
CORS(app)
CORS(api2)

@app.route('/')
def index():
    return '<h1>hi</h1>', 200

if __name__ == "__main__":
    app.run()

api2/__init__.py

from flask import Blueprint

api2 = Blueprint('api2', __name__, url_prefix='/api2')

from . import some_url

api2/some_url.py

from . import api2
from flask import request

@api2.before_request
def before_request():
    print(request.json)

@api2.route('/some_url')
def get_some():
    return '<h1>here is some</h1>', 200

这是 axios 请求代码:

componentDidMount(){
        const data = {
            "project_id": "1",
            "username": "user1"
        }
        axios({url:"/some_url",data:data, 
                headers: {"ContentType": "application/json"},method:"GET"})
            .then(resp=>{
                console.log(resp);
                this.setState({sysMissions:Object.values(resp.data.data)})
            });
    }

所以这失败了,所以我在方法中放置了一个断点before_request。当我查看请求对象字段时,我看到的is_jsonTrue,但 json 数据解码中有一些错误,当我将鼠标悬停在该json字段上时会出现此白色消息: json解码错误

我还尝试对我的数据进行 JSON.stringify 处理,但效果不佳,并且is_json字段为False.

似乎有一些解码错误。正如我所看到的,json 数据是 UTF-8 编码的。我应该将 axios 编码设置为其他内容吗?

标签: pythonflaskaxios

解决方案


推荐阅读