JirkaDellOro / EIA2

Modul "Entwicklung Interaktiver Anwendungen II": Material, Aufgaben und Tafelbilder
https://jirkadelloro.github.io/FreeMindViewer/?map=EIA2.mm&path=https://jirkadelloro.github.io/EIA2
5 stars 17 forks source link

Heroku Probleme! #301

Closed Cryray closed 5 years ago

Cryray commented 5 years ago

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!

Plagiatus commented 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,

Cryray commented 5 years ago

Wie schau ich nochmal in die Heroku Logs? ^^

Cryray commented 5 years ago

Der Befehl "heroku logs" funktioniert in meiner Konsole nicht.

JirkaDellOro commented 5 years ago

im Heroku-Dashboard oben rechts More->View Logs

Cryray commented 5 years ago

Ok jetzt habe ich ein Problem gelöst. Jedoch wird es in meiner Highscore Liste immer noch nicht angezeigt...

Plagiatus commented 5 years ago

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..

Cryray commented 5 years ago

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

Plagiatus commented 5 years ago

Wann sollte denn der Highscore angezeigt werden?

Cryray commented 5 years ago

document.getElementById("refresh").addEventListener("click", highscores); zeile 25 endabgabe.ts

zeile 24 endabgabe.html Wenn der Knopf Highscores im Menü gedrückt wird
Plagiatus commented 5 years ago

wie soll denn in deiner Highscore liste etwas angezeigt werden, wenn du nie eine anfrage an den server schickst?

Cryray commented 5 years ago

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?

Cryray commented 5 years ago

Heroku sagt auch :"Request received"

Plagiatus commented 5 years ago

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.

Cryray commented 5 years ago

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)

Cryray commented 5 years ago

Jetzt lädt er die Heroku Logs nicht mehr.. Ich habe keine Ahnung wo der Fehler liegt

Cryray commented 5 years ago

Er zeigt mir jetzt die Daten in der Datenbank in den Heroku Logs an aber die Highscore Liste lädt er immernoch nicht..

Cryray commented 5 years ago

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

Nigolilolino commented 5 years ago

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 ?

Cryray commented 5 years ago

Ich habe insgesamt 67 Einträge in diesem Array..

Cryray commented 5 years ago

Zumindest nach console.log(dataArray.length);

Plagiatus commented 5 years ago

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?

Cryray commented 5 years ago

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

R4Pi3R commented 5 years ago

Die request wird in "function sendRequestWithCustomData()" generiert und gesendet, korrekt?

Cryray commented 5 years ago

Ja korrekt

Cryray commented 5 years ago

Die führt er auch aus zumindest macht er mir den console.log(requestcustom);

Plagiatus commented 5 years ago

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. grafik

grafik

Cryray commented 5 years ago

Also wird meine Liste in den Highscores Button gespeichert?? Wie hast du es jetzt geschrieben damit sie dir im "Menu" angezeigt werden??

R4Pi3R commented 5 years ago

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.

Plagiatus commented 5 years ago

Ich habe nichts geändert. lediglich das Highscore Overlay aus- und die Buttons eingeblendet. Das hier ist dein Code. grafik

Cryray commented 5 years ago

Es funktioniert jetzt! Danke fürs helfen