axios引发内部服务器错误,但api url有效

6qfn3psc  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(503)

我希望你们都平安。我的问题:url工作正常,没有未定义的url错误。当我输入了良好的凭证时,它工作正常,并将我带到我希望的位置。但每当我试图查看错误时,它都不会出现。甚至,在if条件下,我尝试console.log(res.data.errors),但什么也没有显示。即使是console.log(“hello it not working”)在if条件下也无法工作。。。我很困惑。你能帮忙吗?但其他方法也可以。请问我做错了什么?

  1. import React, { useState } from "react";
  2. import { Link } from "react-router-dom";
  3. import SideBar from "../components/SideBar";
  4. import "./profil.css";
  5. import axios from "axios";
  6. function Profil() {
  7. const [username, setUsername] = useState("");
  8. const [email, setEmail] = useState("");
  9. const [password, setPassword] = useState("");
  10. const handleLogin = (e) => {
  11. e.preventDefault();
  12. const emailError = document.querySelector(".email.error");
  13. const passwordError = document.querySelector(".password.error");
  14. axios({
  15. method: "post",
  16. url: `${process.env.REACT_APP_API_URL}api/user/login`,
  17. withCredentials: true,
  18. data: {
  19. email,
  20. password,
  21. },
  22. })
  23. .then((res) => {
  24. if (res.data.errors) {
  25. emailError.innerHTML = res.data.errors.email;
  26. passwordError.innerHTML = res.data.errors.password;
  27. } else {
  28. window.location = "/";
  29. }
  30. })
  31. .catch((err) => {
  32. if (err.response) {
  33. // The request was made and the server responded with a status code
  34. // that falls out of the range of 2xx
  35. console.log(err.response.data);
  36. console.log(err.response.status);
  37. console.log(err.response.headers);
  38. } else if (err.request) {
  39. // The request was made but no response was received
  40. // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
  41. // http.ClientRequest in node.js
  42. console.log(err.request);
  43. } else {
  44. // Something happened in setting up the request that triggered an Error
  45. console.log('Error', err.message);
  46. }
  47. console.log(err.config);
  48. });
  49. };
  50. return (
  51. <>
  52. <SideBar />
  53. <div className="form-container">
  54. <input type="checkbox" id="flip" />
  55. <div className="cover">
  56. <div className="front">
  57. <img src="dog-4977599_1920.jpg" alt="" />
  58. <div className="text">
  59. <span className="text-i">Welcome to ChablisLAB</span>
  60. <span className="text-j">Please Login before continue</span>
  61. </div>
  62. </div>
  63. <div className="back">
  64. <img className="backImg" src="diary-92652_1920.jpg" alt="" />
  65. <div className="text">
  66. <span className="text-i">Welcome to ChablisLAB</span>
  67. <span className="text-j">Just a few step to gain access</span>
  68. </div>
  69. </div>
  70. </div>
  71. <form>
  72. <div className="form-content">
  73. <div className="login_form">
  74. <div className="title">Login</div>
  75. <div className="input_boxes">
  76. <div className="input_box">
  77. <i className="bx bx-envelope"></i>
  78. <input
  79. type="email"
  80. onChange={(e) => setEmail(e.target.value)}
  81. value={email}
  82. placeholder="Enter your email"
  83. />
  84. </div>
  85. <div className="email error"></div>
  86. <div className="input_box">
  87. <i className="bx bxs-lock"></i>
  88. <input
  89. type="password"
  90. onChange={(e) => setPassword(e.target.value)}
  91. value={password}
  92. placeholder="Password"
  93. />
  94. </div>
  95. <div className="password error"></div>
  96. <div className="box_forgot_pass">
  97. <Link to="#">Forgot password?</Link>
  98. </div>
  99. <div className="button input_box">
  100. <input onClick={handleLogin} type="submit" value="Login" />
  101. </div>
  102. <div className="text sign-up-text">
  103. Don't have an account?
  104. <label htmlFor="flip">Signup now</label>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. </form>
  110. </div>
  111. </>
  112. );
  113. }
  114. export default Profil;
  1. .error{
  2. color: red;
  3. }
  1. <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
  2. <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
zynd9foi

zynd9foi1#

我认为在添加if条件之前,需要先控制台res.data.errors。您可能会在错误的属性上设置条件,而这些条件不会作为响应得到回报。

  1. axios({
  2. method: "post",
  3. url: `${process.env.REACT_APP_API_URL}api/user/login`,
  4. withCredentials: true,
  5. data: {
  6. email,
  7. password,
  8. },
  9. })
  10. .then((res) => {
  11. console.log(res.data.errors, res.data); //check like this then put condition if you are getting res.data.errors property in response
  12. if (res.data.errors) {
  13. emailError.innerHTML = res.data.errors.email;
  14. passwordError.innerHTML = res.data.errors.password;
  15. } else {
  16. window.location = "/";
  17. }
  18. })
展开查看全部

相关问题