Hur använder man ett API med JavaScript egentligen

Permalänk

Hur använder man ett API med JavaScript egentligen

Har över sommaren börjat kolla lite på hur man gör moderna webbsidor och då främst JavaScript då jag tidigare har hållit på med HTML/CSS/PHP/MySQL men det verkar som JavaScript är där det roliga händer ;). I vilket fall har jag ju upptäckt att det finns EXTREMT många API:er som man kan hitta t.ex. på sidor som http://apikatalogen.se/api så jag tänkte testa ett simpelt API med ett simpelt exempel bara för att testa lite. Valde därför detta http://yourmoneyisnowmymoney.com/api/ vilket helt enkelt bara tar ett postkodsnummer och ger koordinater och stad tillbaka.

Problemet är ju det eviga strulet med Cross-Domain requests som jag inte blir klok på. Det finns två sätt jag vet att gå runt det på, JSONP och CORS varav båda går ut på att serverinnehavaren måste göra något. Antingen lägga till en Access-Control-Allow-Origin header (CORS) eller padda svaret med ett anrop till en callback function(JSONP).

Är detta verkligen de enda sätten att använda dessa API:s? Är just detta API:t helt enkelt värdelöst för användning på hemsidor då det inte har stöd för varken JSONP eller CORS? Har jag missat något här? Hur kan alla andra använda en massa API:s överallt fast denna limitation finns?

Gjorde en supersimpel, superenkel sida för att testa med på: inza.eu.pn/zip
Den funkar inte och om man kollar i konsolen står det: XMLHttpRequest cannot load http://yourmoneyisnowmymoney.com/api/zipcodes/?zipcode=22363. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://inza.eu.pn' is therefore not allowed access.

Visa signatur

Intel 7700K 4,2 GHz | ASUS ROG Stric GTX 1080 | 16 GB DDR4 | ASUS ROG STRIX Z270H GAMING | Samsung 850 EVO

Permalänk
Medlem

Som du skriver så måste servern ge dig access för att kunna göra klient requests så det du får göra är att göra requesten med php från din egen server.

klient (js) <-> din server (php) <-> api

För t.ex. Googles api:er (och andra api:er som fungerar med ren javascript) så injicerar dom en iframe som fungerar som en proxy för att komma runt cors.
https://stackoverflow.com/questions/129053/how-does-googles-j...

Visa signatur

Mina poster är en illusion. Det som står skrivet här över står i själva verket inte där så inget av det som du läser är sant. Inte ens den här texten. Jag har själv ingen kunskap om det jag skriver och ingen bör således läsa eller ta in den information som står skrivet.