gpt4 book ai didi

node.js - 如果状态为 302,axios 会进入 catch 函数而不是 then

转载 作者:太空宇宙 更新时间:2023-11-04 00:03:26 26 4
gpt4 key购买 nike

我正在使用create函数将数据保存到mongodb,在成功将数据保存到数据库后,我正在发送带有302状态代码的消息。但是 axios 进入的是 catch 函数而不是 then 函数。响应未定义。但是当我在网络选项卡中看到响应时。我收到响应。下面是我的代码。

将数据保存到mongodb

exports.addProject = async (req, res) => {
Project.create(req.body)
.then(function(){
res.status(302).send({message: MESSAGE.PROJECT_ADDED_SUCCESS})
})
.catch(err => handleErrors(res, err));
};

在前端,在 axios 中,同时获得响应

export function addProject(data) {
const token = localStorage.getItem(CONFIG.AUTH_TOKEN);
const url = `${CONFIG.API_BASE_URL}/api/projects`;
axios.post(url, data, { headers:{ Authorization:`${token}`}}).then(function(response){
console.log(response);
return response;
})
.catch(function(response){
console.log(response);
return response;
})
}

请告诉我如何在 axios 请求中获得响应然后运行。下面是附加的错误图像。 error image

最佳答案

您可以使用选项validateStatus

这是默认值

// `validateStatus` defines whether to resolve or reject the promise for a given
// HTTP response status code. If `validateStatus` returns `true` (or is set to `null`
// or `undefined`), the promise will be resolved; otherwise, the promise will be
// rejected.
validateStatus: function (status) {
return status >= 200 && status < 300; // default
}

您可以添加自定义,以允许

validateStatus: function (status) {
return status >= 200 && status <= 302
}

关于node.js - 如果状态为 302,axios 会进入 catch 函数而不是 then,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53480518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com