Почему я получаю ошибку 400 при HTTP-запросе при отправке данных в API? - PullRequest
2 голосов
/ 01 августа 2020

Всем доброе утро,

Я боролся с ошибкой 400 в моем JS коде.

API необходимо получить объект контакта со всей информацией из формы и массив идентификаторов продуктов, чтобы вернуть номер заказа.

Итак, я получаю все значения из формы и помещаю их в контактный объект. Затем мне нужно получить продукты в корзине из локального хранилища, получить идентификаторы всех объектов внутри корзины, поместить их в массив продуктов для отправки в API.

// Création de l'objet contact à l'envoi du formulaire
document.getElementById("form").addEventListener("submit", function() {
  let contact = {
    nom: document.querySelector("#nom").value,
    prenom: document.querySelector("#prenom").value,
    adresse: document.querySelector("#adresse").value,
    ville: document.querySelector("#ville").value,
    email: document.querySelector("#email").value
  }
  //Création du tableau de produits
  let panier = localStorage.getItem("panier");
  panier = JSON.parse(panier);
  let products = [];
  panier.produits.forEach(element => {
    products.push(element._id);
  })
  console.log(products);

  //Envoi des données à l'API
  let requete = new XMLHttpRequest();
  let url = 'http://localhost:3000/api/cameras/order';
  requete.open("POST", url);
  requete.setRequestHeader("Content-Type", "application/json");

  requete.addEventListener("load", function() {
    console.log(requete.responseText);
  })

  let envoi = JSON.stringify({contact,products});
  requete.send(envoi);
});
<!DOCTYPE html>
<html lang="fr" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <form id="form">
      <p>
      <label for="Nom"></label>
      <input type="text" name="Nom" value="Nom" id="nom" required>
      </p>
      <p>
      <label for="Prénom"></label>
      <input type="text" name="Prénom" value="Prénom" id="prenom" required>
      </p>
      <p>
      <label for="Adresse"></label>
      <input type="text" name="Adresse" value="Adresse" id="adresse" required>
      </p>
      <p>
      <label for="Ville"></label>
      <input type="text" name="Ville" value="Ville" id="ville" required>
      </p>
      <p>
      <label for="Email"></label>
      <input type="email" name="Email" value="Email" id="email" required>
      </p>
      <p>
      <input type="submit" name="submit" value="Commander">
      </p>
    </form>
    <script src="commande.js" charset="utf-8"></script>
  </body>
</html>

URL-адрес наверняка правильный, и я действительно не понимаю, что я сделал не так с этим запросом.

Спасибо за вашу помощь

Хорошего дня и хороших выходных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...