Closed Cryray closed 5 years ago
bloß weil es erfolgreich deployed wurde, heißt das noch nicht, dass der Server nicht während der Laufzeit abstürzt wenn da irgendwo ein Fehler geworfen wird. schau mal in die Heroku Logs rein,
Wie schau ich nochmal in die Heroku Logs? ^^
Der Befehl "heroku logs" funktioniert in meiner Konsole nicht.
im Heroku-Dashboard oben rechts More->View Logs
Ok jetzt habe ich ein Problem gelöst. Jedoch wird es in meiner Highscore Liste immer noch nicht angezeigt...
Bitte einen Links zur ausführbaren HTML und zur Datei in der du deine Probleme vermutest. Sowie weitere Info dazu, was denn genau wann nicht funktioniert, welche Errors es gibt etc..
https://cryray.github.io/EIA2/Endabgabe/endabgabe.html
Datei in der ich Problem vermute: endabgabe.ts Problem: Meine Dateien werden anscheinend auf Heroku hochgeladen aber ich kann sie auf meiner Highscore Liste nicht einsehen Error gibt es keine mehr
Wann sollte denn der Highscore angezeigt werden?
document.getElementById("refresh").addEventListener("click", highscores); zeile 25 endabgabe.ts
zeile 24 endabgabe.html Wenn der Knopf Highscores im Menü gedrückt wirdwie soll denn in deiner Highscore liste etwas angezeigt werden, wenn du nie eine anfrage an den server schickst?
function sendRequestWithCustomData(): void { console.log("requestcustom"); let xhr: XMLHttpRequest = new XMLHttpRequest(); let sendString: string = ""; sendString += "name:" + document.getElementById("textInput").getAttribute("value") + "&" + "score:" + score; Zeile 304 in der endabgabe.ts ist das keine anfrage an den server?
Heroku sagt auch :"Request received"
du bekommst auch eine Antwort zurück:
unknown command: undefined
überprüfe nochmal deinen Servercode, ob dieser die Daten richtig entgegennimmt, weitergibt und richtig antwortet.
Ich bin nach langem rumprobieren immer noch nicht auf den Fehler gekommen... Er sagt mir jetzt zudem nen Error den ich nicht behoben kriege.. Uncaught TypeError: Cannot read property 'name' of undefined at XMLHttpRequest.handleFindResponse (DatabaseClient.js:65)
Jetzt lädt er die Heroku Logs nicht mehr.. Ich habe keine Ahnung wo der Fehler liegt
Er zeigt mir jetzt die Daten in der Datenbank in den Heroku Logs an aber die Highscore Liste lädt er immernoch nicht..
Also das genaue Problem ist in dem Fall, dass ich die Daten : "Score" und "Name" nicht aus der Datenbank bekomme, bzw vllt aus der Datenbank bekomme, sie aber auf jeden Fall nicht angezeigt werden in der High Score Liste
Hast du dir mal die Länge von deinem dataArray ausgeben lassen ? Du gehst das dataArray 10 mal durch, bist du denn sicher, dass auch so viele Einträge in diesem Array drinnen sind ?
Ich habe insgesamt 67 Einträge in diesem Array..
Zumindest nach console.log(dataArray.length);
Die Antwort die vom Server zum Client kommt ist immernoch unknown command: undefined
. Da kann ja nichts interessantes drin stehen. Was erwartet denn dein Server für eine Anfrage und wie sieht die Anfrage tatsächlich aus?
Naja wahrscheinlich gibt er mir die Default Ausgabe mit der CodeZeile aus: default: respond(_response, "unknown command: " + command); break; aber er sollte eigentlich diese ausführen: case "insert": let student: playerData = { name: query["name"],
score: parseInt(query["score"]) };
Database.insert(student);
respond(_response, "Please refresh your window and click on Highscore-List to see how good you are.");
break;
case "refresh":
Database.findAll(findCallback);
break;
Aber meiner Meinung nach sind die cases "refresh" und "insert" doch gegeben ode rnicht? Danke für die schnelle Antwort
Die request wird in "function sendRequestWithCustomData()" generiert und gesendet, korrekt?
Ja korrekt
Die führt er auch aus zumindest macht er mir den console.log(requestcustom);
also, ich habe jetzt erst gesehen dass mit dem klick auf den Highscore Button zwei verschiedene Funktionen aufgerufen werden. Und beim Ende des Spiels ist die eine zum Einfügen noch fehlerhaft und gibt die default antwort zurück, die zum Abrufen dagegen stimmt soweit.
Deine Daten werden nur in das falsche Element geschrieben.
Also wird meine Liste in den Highscores Button gespeichert?? Wie hast du es jetzt geschrieben damit sie dir im "Menu" angezeigt werden??
Da wird dem String aber kein command angefügt. Wenn das nirgends anders passiert führt das dazu, dass bei dieser request immer die default response ausgeführt wird.
Ich habe nichts geändert. lediglich das Highscore Overlay aus- und die Buttons eingeblendet. Das hier ist dein Code.
Es funktioniert jetzt! Danke fürs helfen
Ich habe Probleme mit dem Senden meiner Scores: ////////////////////////////////////////////////////////////////// GET https://githubcryray.herokuapp.com/?name:Leon&score:-2378 503 (Service Unavailable) sendRequestWithCustomData @ endabgabe.js:233 endabgabe.html:1 Access to XMLHttpRequest at 'https://githubcryray.herokuapp.com/?name:Leon&score:-2378' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. ////////////////////////////////////////////////////////////////// Das steht nach dem drücken des "Send" Knopfes in der Konsole. Zudem lässt sich die URL : "githubcryray.herokuapp.com" nicht öffnen, obwohl Heroku mir sagt das alles erfolgreich deployt wurde. Danke schonmal für die Antwort!