我尝试使用axios从后端获取api数据。我收到一个错误,如下所示:
POST http://localhost:3000/undefined/post 404 (Not Found)
API路由如下:
// route middleware
app.use("/api", portRoutes);
// passing on controllers
router.post("/post", create);
// rest of code will have in controller folder
现在我已经尝试在前台工作了
我试过这样做:
.env
文件
REACT_APP_API = http://localhost:8000/api
我不知道为什么无法访问我的服务器端链接
handleSubmit
函数
const handleSubmit = (e) => {
e.preventDefault();
// access data from backend
axios
.post(`${process.env.REACT_APP_API}/post`, { title, content, user })
.then((response) => {
console.log(response);
setState({ ...state, title: "", content: "", user: "" });
alert(`Post Title ${response.data.title} is created`);
})
.catch((error) => {
console.log(error.response);
alert(error.response.data.error);
});
};
我确定我的api没问题,我已经用postman软件检查过我的api了。
发布于 2021-03-03 02:25:54
我已经解决了这篇link中的错误如果你遇到了和我一样的问题,请随意阅读这篇文章。
谢谢。
发布于 2021-03-02 18:16:35
你不能在你的前端应用中从服务器端访问.env文件。
我的建议是在你的前端创建一个配置axios文件
import axios from 'axios';
const api = axios.create({
baseURL: 'http://localhost:8000/api',
});
export default api;
然后在你的handleSubmit
函数中:
const handleSubmit = (e) => {
e.preventDefault();
// access data from backend
api
.post(`/post`, { title, content, user })
.then((response) => {
console.log(response);
setState({ ...state, title: "", content: "", user: "" });
alert(`Post Title ${response.data.title} is created`);
})
.catch((error) => {
console.log(error.response);
alert(error.response.data.error);
});
};
https://stackoverflow.com/questions/66444086
复制