Javascripttel helyi fájlban lévő json tömb feldolgozása
2020-09-08T13:53:04+02:00
2020-09-08T14:43:34+02:00
2022-08-11T21:41:49+02:00
yguernen
Sziasztok!
Segítséget szeretnék kérni az alábbi probléma megoldásához.
Egy adatfeldolgozó szoftver kimenete egy olyan fájl, ami JSON objektumokat tartalmaz. Pl.: [{"DATUM":"2020-01-01","RENDELESSZAM":"01-0587-2020","CIM":"1157 BUDAPEST"},
{"DATUM":"2020-01-02","RENDELESSZAM":"01-0601-2020","CIM":"1048 BUDAPEST"}]

Ezt egy HTML fájl segítségével böngészőben kell megjeleníteni táblázatban úgy, hogy a számítógép nincs hálózaton, nem fut rajta webszerver. A html-ben nem helyezhető el fájlmegnyitó űrlap, a json fájl elérési útját és nevét "bele kell égetni" a html fájlba. Az adatok változtatása a json fájl cseréjével valósul meg.

Ez az, ami a gondot okozza, mert az XmlHttpRequest, a fetch api és a neten található megoldások közül egyik sem működik. Cross-origin kérés blokkolva, A CORS kérés nem HTTP. Ezek a hibaüzenetek.

Kérem, hogy aki tud segíteni, az pontosan erre a problémára válaszoljon. Nem működhet másképpen, csak ezekkel a feltételekkel. Egyéb megoldással sikerült a megjelenítés, de így nem.
Mutasd a teljes hozzászólást!
Nem működhet másképpen, csak ezekkel a feltételekkel.

Ne erőlködj, nem fog működni. Az elgondolás maga rossz, t.i. egy böngésző csak ne akarjon a helyi fájlrendszeren matatni. Soha, semmilyen körülmények között. JS-el ez nem megoldható.

Minimum: fusson egy webszerver, p olvassa a fájlt, és ezt hívd AJAX-al.
Mutasd a teljes hozzászólást!

  • Gondolom windows, és nem buildelt js-ről van szó? Ott egy kicsit macerásabb felrakni egy serve egyszerűségű webserver-t.
    De kb. felrakod a gitbash-t, hogy legyen valami normális konzolod. Utána egy serve-t, és serve ./ parancs után a localhost:8080 -on fut is a weboldalad.
    az alatta levő mappákat szépen el is éri.

    Onnan offline módban is rém egyszerű lenne :

    fetch('/valahol/valami.json') .then(result => result.text()) .then(json => { try { const data = JSON.parse(json); adatMegjelenitese(data); } catch(err) { hibaLekezelese(err); } })
    Mutasd a teljes hozzászólást!
  • Workaround-ként működhet, ha a json-t javascript-ként tudod átalakítani

    pl. data.json

    [{"DATUM":"2020-01-01","RENDELESSZAM":"01-0587-2020","CIM":"1157 BUDAPEST"}, {"DATUM":"2020-01-02","RENDELESSZAM":"01-0601-2020","CIM":"1048 BUDAPEST"}]
    helyett
    data.js

    var list =[{"DATUM":"2020-01-01","RENDELESSZAM":"01-0587-2020","CIM":"1157 BUDAPEST"}, {"DATUM":"2020-01-02","RENDELESSZAM":"01-0601-2020","CIM":"1048 BUDAPEST"}]
    ezt pedig tudod használni html-ben

    <div id="result"> </div> <script src="data.js"></script> <script> const result = document.getElementById('result'); const ul = document.createElement('ul'); for(const item of list) { const li = document.createElement('li'); li.innerText = item.RENDELESSZAM + ' ' + item.DATUM + ' ' + item.CIM; ul.appendChild(li); } result.appendChild(ul); </script>
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd