[英]React 404 Axios Cannot POST
Axios 的新手和作为后端的 Node - 继承了 React 中的一些登录页面代码,我试图弄清楚为什么我不能向后端发送POST
。
这是我的 .env 文件:
REACT_APP_BACKEND_URL=http://localhost:3000/admin
还有一个名为API.js
的文件
import axios from "axios";
// Set config defaults when creating the instance
export const CompanyAPI = () => {
let api = axios.create({
baseURL: process.env.REACT_APP_BACKEND_URL,
timeout: 10000,
headers: {
"Content-Type": "application/json",
},
});
return api;
};
然后是一个LoginPage.js
:
export const LoginPage = () => {
const API = CompanyAPI();
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const getAuth = (e) => {
e.preventDefault();
API.post("/auth/login", {
email: email,
password: password,
})
.then(async (response) => {
if (response.status === 200) {
await localStorage.setItem("jwt_key_admin", response.data.token);
setTokenKey(response.data.token);
setIsAuth(true);
navigate("/");
}
})
.catch((error) =>
alert(
"Login Failed"
)
);
};
我的问题是,是否有关于如何使用express
处理/auth/login
端点并补充现有API.js
文件的示例?
基本上我从这段代码中看到的是:
创建了一个 axios 实例,baseURL 设置为http://localhost:3000/admin
乍一看,我可以告诉您所有 Api 调用导致404原因是本地 React将始终在端口 3000上运行,除非该端口正在使用中。
所以现在你的 axios baseURL 被设置为端口 3000肯定 axios 应该返回 404 因为你肯定没有你试图点击的端点
解决方案:
这里你要将 baseURL 的端口号更改为 Nodejs 服务器正在侦听的端口
然后一旦说完并完成,然后确保即使您尝试访问的端点确实存在,那么您的 axios 调用现在应该可以工作
建议:
添加
"proxy":"http://localhost:3000/admin"
在您的 package.json 文件中并重新启动您的 React App。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.