Maison >interface Web >js tutoriel >Demande abandonnée (NS_BINDING_ABORT) dans Firefox mais fonctionnant dans les navigateurs restants
const Login = () => {
const { isAuthenticated } = useSelector(
(rootState : RootState) => rootState.auth
);
const router = useRouter();
const dispatch = useDispatch();
const searchParams = useSearchParams();
const [isLoading, setIsLoading] = useState(false);
const [passwordVisible, setPasswordVisible] = useState(false);
const togglePasswordVisibility = () => {
setPasswordVisible(!passwordVisible);
};
const ValidationSchema = z.object({
email : z.string().email("Veuillez saisir une adresse e-mail valide"),
mot de passe : z
.string()
.min(8, "Le mot de passe doit comporter au moins 8 caractères")
.max(20, "Le mot de passe ne peut pas dépasser 20 caractères"),
Remember_me : z.boolean().optional().default(false),
});
const [isPending, setIsPending] = useState(false);
tapez ValidationSchemaType = z.infer;
useEffect(() => {
if (isAuthenticated) {
router.push("/app");
}
}, [isAuthenticated]);
const {
regarde,
setValue,
inscrivez-vous,
handleSubmit,
formState : { erreurs },
} = useForm({
résolveur : zodResolver(ValidationSchema),
});
const handleGetProfileData = async () => {
essayez {
const réponse = attendre axios.get(${API_URL}/users/api/v1);
const userData = réponse?.data?.data;
return userData ;
} capture (erreur) {
console.log(erreur);
}
};
const onSubmit : SubmitHandler = données asynchrones => {
setIsPending(true);
essayez {
const validatedData = ValidationSchema.parse(data);
const réponse = attendre axios.post(
API_URL "/users/api/v1/auth/login",
validatedData
);
const expiryTime = watch("remember_me")
? 30*24*60*60*1000
: 7*24*60*60*1000;
setCookie("token", réponse.data.data.token, {
sécurisé : vrai,
mêmeSite : "aucun",
expire : new Date(Date.now() expiryTime),
// domaine : process.env.NEXT_PUBLIC_APP_BASE_URL,
});
const userData = wait handleGetProfileData();
dispatch(login(userData));
router.push("/app");
toast.success(response.data.message);
} catch (erreur : n'importe laquelle) {
if (erreur.réponse) {
toast.error(error.response.data.message);
} autre {
toast.error(error.message);
}
console.error("Échec de la connexion :", erreur);
} enfin {
setIsPending(false);
}
};
retour(
//reste du code
);
};
J'ai écrit comme ceci pour l'authentification des utilisateurs. Mais la demande d'erreur est annulée.
-> J'ai entré les informations d'identification et je les ai envoyées au backend.
-> Le jeton génère et reçoit un message de réussite.
-> Après cela, je dois rediriger vers la page de l'application. mais lors de la redirection, la demande est abandonnée.
Quelqu'un peut-il m'aider à résoudre ce problème
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!