请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

drf自带的返回的HTTP状态码都是400,前端拿不到报错消息怎么办?

比方说我在serializers中对username字段做了:

username = serializers.CharField(validators=[UniqueValidator(queryset=User.objects.all(),                                message="Name already exists")]

然后前端拿到的是 400 Bad Request,前端工程师说Response里的'Name already exists'拿不到

前端工程师让我返回200的状态码,他才可以取到里面的报错信息提示给用户。

不知道我有没有讲明白。。

如果是这种情况,应该怎么处理?前端没办法拿到吗?

正在回答 回答被采纳积分+3

1回答

bobby 2017-10-13 10:16:29

首先这个信息前端是肯定可以拿到的 但是这个信息是放到返回的json里面的, 你可以通过浏览器调试也可以看到。 你可以自己通过浏览器访问然后重现这种情况给前端看,而且返回200也是不合理的, 参数错误应该返回400

0 回复 有任何疑惑可以回复我~
  • 提问者 CHARRY_c #1
    明白了,谢谢老师!
    回复 有任何疑惑可以回复我~ 2017-10-13 10:18:34
  • 问个问题,返回的json怎么取,res.json? 400我总是不知道怎么取内容
    回复 有任何疑惑可以回复我~ 2019-05-29 18:31:24
  • 后面会讲解的,可以从serializer的data属性中获取
    回复 有任何疑惑可以回复我~ 2019-06-01 09:17:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信