问题描述
我正在尝试使用axios向后端发送POST请求,但是它为路径抛出404,我不知道为什么
export const addGoal = (newGoal: Goal) => {
return (dispatch: any) => {
authMiddleWare(history)
const newValues = newGoal
const authToken = localStorage.getItem('AuthToken')
axios.defaults.headers.common = { Authorization: `${authToken}` }
axios
.post('/goal',newValues)
.then((response) => {
console.log('success',response.data)
dispatch({
type: ADD_GOAL,payload: response.data,})
})
.catch((err) => {
console.error('\nCould not submit goal\n',err.response)
})
}
}
app.post("/goal",auth,postOneGoal);
这是节点路径的后端功能
// ADDS A SINGLE WORKOUT
exports.postOneGoal = (request,response) => {
if (request.body.id.trim() === "" || request.body.text.trim() === "") {
return response.status(400).json({ body: "Must not be empty" });
}
const newGoalItem = {
username: request.user.username,id: request.body.id,text: request.body.text
};
db.collection("goals")
.add(newGoalItem)
.then((doc) => {
const responseNewGoalItem = newGoalItem;
responseNewGoalItem.id = doc.id;
doc.update(responseNewGoalItem);
return response.json(responseNewGoalItem);
})
.catch((err) => {
response.status(500).json({ error: "Couldn't add the goal" });
console.error(err);
});
};
我也在package.json中使用了Firebase url代理。
让我知道是否需要更多信息
解决方法
根据评论将其发布为Community Wiki。
考虑到您正在使用Cloud Functions的事实,每次更新代码时都需要重新部署这些功能。您可以在here可访问的官方文档中查看有关部署功能的更多详细信息。在那里,您可以选择如何以及在何处部署功能以进行更好的测试。