在Axios文档中:
axios.get('/user/12345')
.catch(function (error) {
if (error.response) {
// The request was made and the server responded with a status code
// that falls out of the range of 2xx
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
// The request was made but no response was received
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
// http.ClientRequest in node.js
console.log(error.request);
} else {
// Something happened in setting up the request that triggered an Error
console.log('Error', error.message);
}
console.log(error.config);
});
我们知道我们可以在中捕获
错误。catch()
方法。
但是当我使用Django Rest框架作为后端API提供程序时。它只提供数据,没有状态:
您会看到
错误
:
{username: ["A user with that username already exists."]}
但在浏览器中,我们可以知道状态码:
在提出这个问题之前,我已经阅读了如何从Axios中的http错误中获取状态代码?这个帖子。
但是这篇文章似乎和我的不同。
编辑-1
在我的Django Rest框架项目中:
观点:
class UserCreateAPIView(CreateAPIView):
serializer_class = UserCreateSerializer
permission_classes = [AllowAny]
queryset = User.objects.all()
序列化程序:
class UserCreateSerializer(ModelSerializer):
"""
user register
"""
class Meta:
model = User
fields = [
'username',
'wechat_num',
'password',
]
extra_kwargs = {
"password":{"write_only":True}
}
def create(self, validated_data):
username=validated_data.pop('username')
wechat_num = validated_data.pop('wechat_num')
password=validated_data.pop('password')
user_obj = User(
username=username,
wechat_num=wechat_num,
)
user_obj.set_password(password)
user_obj.save()
group=getOrCreateGroupByName(USER_GROUP_CHOICES.User)
user_obj.groups.add(group)
return validated_data
我在拦截器
配置中发现:
Axios.interceptors.response.use(
res => {
return res;
},
error => {
return Promise.reject(error.response.data)
}
);
我返回了错误。回答数据
直接,我可以将其配置为错误。响应
,或错误
。
如果我配置错误。响应
,然后在中。catch()
我可以像下面这样操控:
console.log(response.data);
console.log(response.status);
console.log(response.headers);
这可能看起来很愚蠢,但是我试图在Axios中请求失败时获取错误数据。 是否可以获取一个可能包含状态代码和内容的对象,而不是字符串?例如:
问题内容: 我想记录301s和302s,但是找不到在Client.Do,Get,doFollowingRedirects,CheckRedirect中读取响应状态代码的方法。我是否必须自己实施重定向才能实现这一目标? 问题答案: 该类型允许您指定自定义传输方式,这应允许您执行后续操作。应该执行以下操作: (如果仅支持链接到默认传输,则可以稍微简化一下)。 然后,您可以使用此传输方式创建客户端,并记
问题内容: 我对如何使用axios上传进度事件感到有些困惑。实际上,我正在将大量文件存储到AWS s3中。为此,如何获得上传进度?我需要这个功能 目前,我的发帖请求是这样的: 问题答案: Axios存储库中有一个明确的示例,说明了如何执行此操作:https : //github.com/mzabriskie/axios/blob/master/examples/upload/index.html
有没有办法获取HTTP状态码(比如200400…)在观察实时数据之前? 这是我的实现: 后果 基本存储库 我的存储库 视图模型 在我的代码中,我执行以下操作: 在哪里可以查看状态代码?我不知道在哪里实现状态码返回。
问题内容: 调用JAX-WS端点时,如何获取HTTP响应代码? 在下面的示例代码中,在调用Web服务时可能会引发Exception,例如或。 在这种情况下,如何从HTTP响应中获取HTTP状态代码? 问题答案: 完成@Praveen答案后,您必须将变成原始值,然后从上下文中获取值。 如果您在托管的Web服务客户端中发生异常,请不要忘记将事务标记为回滚。
我希望检索HTTP响应状态代码(例如,400、401、403、503等),以防请求失败(理想情况下也是成功)。在这段代码中,我使用HTTP Basic执行用户身份验证,并希望能够在用户错误键入密码时向用户发送身份验证失败的消息。 不幸的是,产生的错误似乎并不表示实际收到了HTTP状态代码409: 此外,在发生错误时检索HTTP正文会很好,因为我的服务器端将在那里放置错误的文本描述。 问题 是否可以