【发布时间】:2021-02-19 08:14:45
【问题描述】:
我正在尝试通过关注https://www.freecodecamp.org/news/how-to-persist-a-logged-in-user-in-react/ 博客来实现登录功能。
我想将用户令牌保存在本地存储中。
一切正常,但每次我刷新页面时,都会抛出一个错误:
未捕获的错误:引发了跨域错误。反应没有 访问开发中的实际错误对象。
我已阅读以修复它清除此处的站点数据Uncaught Error: A cross-origin error was thrown. React doesn't have access to the actual error object in development。
但是,我想要一个适当的解决方案或任何替代方法来绕过它。
所以,即使在本地机器上,我也可以使用登录功能。
这是我迄今为止尝试过的:
用于检查当前用户是否登录:
const [userState, setUserState] = useState()
useEffect(() => {
const loggedInUser = localStorage.getItem("user");
if (loggedInUser) {
const foundUser = JSON.parse(loggedInUser);
console.log(foundUser);
setUserState(foundUser);
}
}, []);
登录:
const [username, setUsername] = useState("");
const [password, setPassword] = useState("");
const handleSubmit = async e => {
e.preventDefault();
const user = { username, password };
const response = await axios.post(
"http://localhost:8000/api-token-auth/",
user
)
props.setUserState(response.data)
const loggedInUser = localStorage.getItem("user");
if (!loggedInUser) {
localStorage.setItem('user', response.data)
}
}
【问题讨论】:
标签: javascript reactjs