reactjs React本机中的URL搜索参数

tv6aics1  于 2023-03-17  发布在  React
关注(0)|答案(1)|浏览(114)

我想使用URLSearchParams向服务器发送获取请求,但由于某种原因,服务器一直向我发送错误JSON解析错误:意外标记:〈我把.json改成.text,然后返回一个500的错误同样的fetch请求在我的react js上运行良好我不是react native开发者,所以我不确定问题出在哪里,但是经过一些研究,我发现URLSearchParams在react native中是无效的,所以我想知道是否有替代方法这是我的fetch请求:

const handleSubmit = async (e) => {
    if (e) {
      e.preventDefault();
    }

    if (!recaptchaToken) {
      alert("Please verify that you're a human");
      return;
    }

    
    const formData = new URLSearchParams();
    formData.append("email", email);
    formData.append("password", password);
    formData.append("passwordCheck", passwordCheck);
    formData.append("recaptcha", recaptchaToken);
    formData.append("profile", "Unfinished");

    fetch("/register", {
      method: "POST",
      headers: { "Content-Type": "application/x-www-form-urlencoded" },
      body: formData,
    })
      .then((res) => res.json())
      .then((data) => {
        console.log('data', data)
        if (data !== "Email already in use") {
          console.log("success");
        } else {
          if (data === "Email already in use") {
            setRegisterError("Cette adresse e-mail est déjà utilisée");
          } else {
            setError(data);
            console.log(error);
          }
        }
      })
      .catch((err) => console.log(err));

  };
sshcrbum

sshcrbum1#

我想知道为什么您必须使用URLSearchParams()时,您已经有FormData()可供您使用,以解决您的问题。
使用这样的代码,我认为它会起作用

const formData = new FormData();

formData.append("email", email);
formData.append("password", password);
formData.append("passwordCheck", passwordCheck);
formData.append("recaptcha", recaptchaToken);
formData.append("profile", "Unfinished");

// Rest you can use fetch normally

在本例中,我们创建一个新的FormData对象,并使用append方法将表单数据追加到该对象中。

相关问题