Vue-Admin-Template与Flask POST请求的400错误排查与修复
本文探讨在使用Vue-Admin-Template前端框架和Flask后端框架时,POST请求返回400错误的问题。该问题源于request.js和axios发送请求方式的差异,导致Flask后端无法正确解析JSON数据。
问题分析:
使用request.js发送POST请求时,Flask接收到的request.data类型为字符串(str),即使is_json值为true,Flask也无法直接解析为JSON对象,从而返回400错误。而axios发送的request.data类型为字节流(bytes),Flask可以正确解析。
立即学习“前端免费学习笔记(深入)”;
解决方案:
为了解决此问题,需要同时调整前端和后端代码:
前端修改 (request.js):
将request.js中的data参数转换为JSON字符串,并设置正确的Content-Type头部信息:
export function addperson(data) { return request({ url: '/webapi/addperson', method: 'post', data: JSON.stringify(data), // 关键:将data转换为JSON字符串 headers: { 'Content-Type': 'application/json' // 关键:设置正确的Content-Type } }) }
后端修改 (Flask):
在Flask后端,使用request.get_json(force=True)强制将request.data解析为JSON对象:
from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/addPerson', methods=['POST']) def addPerson(): try: data = request.get_json(force=True) # 关键:强制解析JSON数据 # ... 处理 data ... return jsonify({"message": "success"}) except Exception as e: return jsonify({"message": "error", "detail": str(e)}), 400
其他注意事项:
通过以上调整,可以有效解决Vue-Admin-Template下Flask POST请求返回400错误的问题,确保前后端数据交互的顺利进行。
以上就是Vue-Admin-Template下Flask POST请求返回400错误:如何解决request.js与Axios请求差异?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号