Django Knox登录端点报Bad request错误,请求协助排查
问题排查方案
首先纠正一个关键误解
登录接口本身是用来获取Token的,请求时不需要携带Bearer Token——只有调用需要权限验证的后续接口时,才需要在请求头里添加Authorization: Bearer <你的Token>。视频里作者没加请求头是完全正确的,你查到的是权限接口的要求,不是登录接口的。
解决"JSON parse error"错误的核心步骤
这个错误的本质是Django后端无法解析你发送的请求体,和Token无关,按以下几点排查:
检查Postman请求体格式
- 切换到
Body标签,选择raw格式,然后在右侧下拉框里必须选中JSON(不是Text、JavaScript等其他选项)。 - 请求体内容必须是合法的JSON格式,比如:
注意:必须用双引号包裹键和值,不能有语法错误(比如多余的逗号)。{ "username": "你的测试用户名", "password": "你的测试密码" }
- 切换到
确认请求头配置
- 确保请求头里存在
Content-Type: application/json。如果Postman没自动添加,手动在Headers标签里新增这个键值对——Django只有收到这个头,才会把请求体当作JSON解析。
- 确保请求头里存在
验证代码中的登录视图
- 该项目用的是Django REST Framework的
TokenObtainPairView(或类似的基于JSON的登录视图),这类视图只接受JSON格式的请求,所以上述两步必须严格执行。
- 该项目用的是Django REST Framework的
验证流程
完成以上设置后重新发送登录请求,正常情况下会返回包含access和refresh字段的JSON响应,其中access就是后续接口需要用到的Bearer Token。
内容的提问来源于stack exchange,提问作者vijay paturkar
相关产品推荐
相关产品推荐

