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

    Guest

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

    Korisnik

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

    Guest

    Ja sam sklepao sa php. JS mi je mnogo bau bau. :)
     
  4. Zeyn

    Korisnik

    Joined:
    17.02.2016
    Messages:
    246
    Likes Received:
    199
    Location:
    Vojvodina
    Okruženje:
    Ostalo
    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:
    55
    Likes Received:
    21
    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

    Guest

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

    Korisnik

    Joined:
    05.01.2016
    Messages:
    55
    Likes Received:
    21
    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