JSON wird auf Server / in Controller.js nicht erkannt. "Undefined"

#1
Hallo zusammen,

ich möchte prüfen, ob der Benutzername schon vergeben ist. Mit dem Code unten hat es mit Postman funktioniert.

Wenn ich nun versuche das mittels XMLHttpRequest zu machen gibt er bei console.log(user) in Controller.js nur "undefined" aus....

Wäre sehr nett wenn mir da jemand einen Hinweis geben könnte, woran es liegen könnte. Ich finde es einfach nicht...

Falls weitere Infos benötigt werden gerne fragen! Vielen Dank!

Viele Grüße
BZBE

L 1571357576115.png

Client.js:
Javascript:
function PrüfeBenutzerRequest() {
  var Userdaten = {
    Username: "qq",
    Password: "123"
  };
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function() {
    console.log("Sth. happened");
  };
  var toSend = JSON.stringify(Userdaten);
  console.log(toSend);
  xhr.open("GET", "http://localhost:3000/notes/Users/Usercheck", true);
  xhr.setRequestHeader("Content-Type", "application/json");
  xhr.send(toSend);
}
Routes.js:
Javascript:
app.get("/notes/Users/Usercheck", notes.Usercheck);
Controller.js:
Javascript:
exports.Usercheck = (req, res) => {
  Note.findOne({ Username: req.body.Username }, function(err, user) {
    if (err) {
      console.log(err);
    }
    var message;
    if (user) {
      console.log(user);
      message = "UserExistiert";
      console.log(message);
    } else {
      message = "UserExistiertNicht";
      console.log(req.body.Username);
      console.log(message);
    }
    res.json({ message: message });
  });
};
 

alinnert

Well-Known Member
#2
Ich tippe darauf, dass du versuchst, einem GET-Request einen Body mitzugeben. Diese Möglichkeit ist zwar mittlerweile standardisiert, aber ich hab davon erst kürzlich erfahren. Lange Zeit war ein Body in GET-Requests nicht erlaubt. Daher denke ich, dass XMLHttpRequest das auch nicht implementiert hat.

Wenn du einen Request-Body hast, solltest du deswegen von GET auf POST wechseln. Da sind definitiv Request-Bodys erlaubt.

(Mich würd nebenbei aber auch interessieren, wie es hier bei fetch() aussieht.)
 
Oben