Dobrodošli na FOSS Srbija

Free and Opensource Srbija je skup entuzijasta i ljubitelja slobodnog i otvorenog koda. Cilj nam je okupiti sve istomišljenike na jednom mestu i stvoriti najveći globalni OpenSource projekat u Srbiji i šire!

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

JSON problem (opet)

Discussion in 'Programiranje' started by Mingo, 12.04.2018.

  1. Mingo

    Korisnik Donator

    Joined:
    05.08.2017
    Messages:
    444
    Likes Received:
    104
    Location:
    Србадија
    Okruženje:
    Gnome3
    Sistem:
    Ubuntu
    Kako najlakše da grabujem podatke iz json fajla:
    https://public-api.adsbexchange.com...t=33.433638&lng=-112.008113&fDstL=0&fDstU=100

    Probao sam ovako pomoću js, ali ne uspevam, nije bitno koji podatak, samo da znam gde grešim. Recimo treba mi 'Id' ... evo mog js:

    Code:
    var x = document.getElementById('loc');
    
                    function getLocation() {
                        if (navigator.geolocation) {
                            navigator.geolocation.getCurrentPosition(showPosition);
                        } else {
                            x.innerHTML = 'Geolocation is not supported by this browser.';
                        }
                    }
    
                    function showPosition(position) {
                        x.innerHTML = 'Latitude: ' + position.coords.latitude +
                        '<br>Longitude: ' + position.coords.longitude;
    
                        var myJSON = 'https://public-api.adsbexchange.com/VirtualRadar/AircraftList.json?lat=33.433638&lng=-112.008113&fDstL=0&fDstU=100';
                       
                        document.getElementById('loc2').innerHTML = myJSON['acList'][0]['Id'];
                    }
    Dobijem izlaz: undefined
     
    Collapse Signature Expand Signature
  2. webad

    Korisnik

    Joined:
    05.01.2016
    Messages:
    48
    Likes Received:
    16
    Okruženje:
    Gnome3
    Sistem:
    Ubuntu
    moras da odradis http (ajax) zahtev ka tom url-u, pa da obradis response
     
  3. Mingo

    Korisnik Donator

    Joined:
    05.08.2017
    Messages:
    444
    Likes Received:
    104
    Location:
    Србадија
    Okruženje:
    Gnome3
    Sistem:
    Ubuntu
    Ja sam sklepao sa php. JS mi je mnogo bau bau. :)
     
    Collapse Signature Expand Signature
  4. Zeyn

    Korisnik

    Joined:
    17.02.2016
    Messages:
    211
    Likes Received:
    164
    Location:
    Pj4gYXJlIHlvdSBvayA/IDw8
    Okruženje:
    Workplace
    Sistem:
    Ostalo
    Kao što ti je webad rekao, moraš poslati zahtev URL-u i pokupiti odgovor da bi mogao da to odradiš. Danas se za te potrebe može koristiti Fetch API.

    Code:
    var jsonData = "";
    
    fetch(url)
    .then( function (response) {
        return response.json();
    })
    .then( function (json) {
        jsonData = json;
    });
    Problem je međutim CORS (. Moraš imati dozvolu od servera da dobiješ podatke sa njega na ovaj način.
     
    Collapse Signature Expand Signature
  5. webad

    Korisnik

    Joined:
    05.01.2016
    Messages:
    48
    Likes Received:
    16
    Okruženje:
    Gnome3
    Sistem:
    Ubuntu
    da razgranicimo: postoji klijentska strana (html, css, js, ...) koja se izvrsava u pretrazivacu, recimo na mom racunaru. postoji serverska strana koja je recimo na nekom tvom racunaru. ja zelim da otvorim tvoj sajt, ja zelim od tebe sadrzaj. meni je sumnjivo ako moj pretrazivac, gledajuci tvoju stranu, komunicira sa nekim trecim serverom.
    ovaj problem, a i CORS, mozes izbeci ako dohvatanje informacija sa drugih servera odradis sa svog servera, npr umesto da u js-u preko ajax-a kontaktiras tudji api, odradi u php-u preko curl-a.
    ja kao korisnik sve sto vidim i znam je da sam otvorio tvoju stranicu, da dobijam sve potrebne informacije od tebe i da samo od tebe zavisim.
     
  6. Mingo

    Korisnik Donator

    Joined:
    05.08.2017
    Messages:
    444
    Likes Received:
    104
    Location:
    Србадија
    Okruženje:
    Gnome3
    Sistem:
    Ubuntu
    Tako sam i ja odradio: Ovo na primer: Quantox Check Airplane To je bila samo proba dizajna. Međutim pošto je bio "JAK" klijent, nije im se svidelo. Kazu uradio si sa PHP a mi smo hteli Vanilla JS. Tako da je posao otpao, ali nema veze. Ličnog sam mišljenja da treba što više stvari odraditi sa PHP, jer JS po meni je manje siguran, prvenstveno jer može da se modifikuje pa i isključi. Nego njima se nije svidelo što se stranica refreshuje. Dok sa brzinom nema problema.
     
    Collapse Signature Expand Signature
  7. webad

    Korisnik

    Joined:
    05.01.2016
    Messages:
    48
    Likes Received:
    16
    Okruženje:
    Gnome3
    Sistem:
    Ubuntu
    cinjenica je da u mom predlogu postoji korak vise (browser <-> server <-> api) u odnosu na (browser <-> api), ali sve zavisi od potreba. jedino sto mi pada na pamet da se odradi bez lokalnog servera, da je sva logika u klijentskoj strani je da ovako moze da se napravi neki hibrid program za telefon koji ne zavisi od lokalnog servera
     
SSL Certificate Biblioteka++ Tor anonimnost Cyberghost vyprvpn