Object-literal & Javasript

  • Hallo,
    ich versuche gerade 'var waeh' in ein Object-literal umzuformen und das 'fetch' so zu formulieren das es dies aufnimmt. Leider funktioniert es aber nicht und ich weiss nicht was ich tun kann.

  • Dann findet er die Datei, di du laden möchtest nicht.

    Da ich deine Daten nicht kenne, kann ich dir dabei nicht helfen.
    Du kannst ja mal in den "Network-Tab" deiner Developer-Tools schauen, da siehst du den Request nochmal und kannst genau schauen, welcher Dateipfad nicht gefunden wird.

  • Dies:

    Zitat

    Failed to load resource: the server responded with a status of 404 (Not Found)

    sagt eindeutig aus, dass die Datei, die Du lesen wolltest, nicht gefunden wurde. In dem Fall liefert der Server eine Fehlerseite aus und weil diese nicht im JSON-Format ist, kommt es zu dem Fehler:

    Zitat

    Uncaught (in promise) SyntaxError: Unexpected token } in JSON at position 112


    Du hast ja das Problem, das AndreasB in Posting #2 beschrieben hat. Korrigiere das zunächst. Wie Du über die Elemente eines Objektes iterieren kannst, kannst Du hier nachlesen:

    https://wiki.selfhtml.org/wiki…leifen_mit_.22for...in.22


    Liegt denn diese JSON-Datei wirklich lokal auf deinem Server?

  • [...]

    In dem Fall liefert der Server eine Fehlerseite aus und weil diese nicht im JSON-Format ist, kommt es zu dem Fehler:

    [...]

    Das sehe ich nicht so.
    Wenn die angeforderte Date nicht gefunden wurde, würde der Fehler
    Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 fetch('foo').then(d => d.json()).catch(console.log)

    Sagen, denn der Browser versucht eine Webseite als JSON zu parsen. und scheitert an dem DOCTYPE.

    Code
    1. Uncaught (in promise) SyntaxError: Unexpected token } in JSON at position 112

    Sieht eher nach einem nicht validen JSON aus.

  • Gibt es dann nicht irgendwie einen Weg das ich alles in den gleichen Code schreiben kann.

    Natürlich geht das.
    Was steht denn in der Datei, die du laden willst?


    Um das Ganze zu debuggen kannst du:

    1. Du könntest den .then Aufruf nach dem .fetch ein wenig erweitern

    JavaScript
    1. .then(res => {
    2.     console.log('Response', res);
    3.     return res.json()
    4. })

    Dadurch würdest du den Response in die Konsole Loggen und sehen, welche Daten du empfängst.


    2. Was ich in #4 schonmal angedeutet hatte: Schau in den Network-Tab deiner Developer Tools. Dort siehst du alle Requests und Responses und dort kannst du gut sehen, welche URL du anfragst und auch welcher Response zurück kommt.