Mirki, problem mam z zapytaniem HTTP. Próbuję wysłać zapytanie GET z poziomu JavaScripta kilkoma metodami - używając czystego JSa lub P5.js (dokładniej funkcji httpGet lub loadJSON).

W momencie kiedy definiuję typ danych jako JSON (w czystym JSie albo w P5) dostaję powiadomienie o tym, że brak w nagłówku pozwolenia na „Access-Control-Allow-Origin". Czyli wydaje się, że rozwiązaniem jest wyciąganie JSONP zamiast samego JSON, ale...
Gdy próbuję wyciągnąć JSONP (to już tylko za
Gumaa - Mirki, problem mam z zapytaniem HTTP. Próbuję wysłać zapytanie GET z poziomu ...

źródło: comment_Jj23BOqvmPAbjogOJIplUcHTCCjDnZmV.jpg

Pobierz
@Gumaa: Dostajesz syntax error, bo nie rozumiesz na czym polega JSONP. JSONP to trick, w którym przesyłane przez serwer dane zostają owrapowane w funkcję JSową dostępną globalnie i umieszczone w tagu `
  • Odpowiedz
@Gumaa: nie da się. Nie ma co tu więcej opisywać, stawiasz sobie swój własny serwer, który odbierze request z twojego skryptu i przekaże go dalej w niezmienionej formie, a następnie otrzyma odpowiedź i również prześle do twojego skryptu w niezmienionej formie. Tyle w skrócie, a nt. konkretnych implementacji i, zapewne, gotowców, niech się wypowie Google.
  • Odpowiedz
#programowanie #jquery #json #jsonp #ajax

Mireczki moje kolorowe. Robię sobie taki kawałek kodu (cross origin leci, więc musi być #jsonp)

$.getJSON( "http://localhost:8888/check/"+name+"/"+encodeURIComponent(url)+"/?jsoncallback=?", function(response){
console.log(response);
});

Serwer odpowiada tak:

"jQuery111008624766052234918_1447685302792({\"status\":\"new\"});"
Zgodnie z wszelkimi przykładami w sieci jakie znalazłem jQuery jakoś samo sobie powinno elegancko przyporządkować tą funkcję callback którą jQuery wygenerowało.
Jednak kod z funkcji anonimowej mającej się wykonać po sukcesie zapytania GET w ogóle się nie wywołuje.

Co robię źle, gdzie
jsoncallback a nie callback?


@rbielawski: @kmiasko: A niech mnie dunder świśnie! Wystarczyło zmienić jsoncallback(tak w sieci było pisało) na callback. W prawdzie teraz muszę jakoś obsłużyć te anonimowe nazwy funkcji, bo jak podam swoją w urlu to rzuca się o ten oridżin.

Więc dodałem ten nagłówek, co Rafał zaproponował i mogę nadać swoją nazwę funkcji. Wtedy jednak success nie strzela, ale na ten przykład w .complete dostaję 'responseText' który jest
  • Odpowiedz
@anonim1133: przeglądarka też musi się zgodzić, ale w to już nie wnikałem za bardzo. Generalnie musi obsługiwać CORS (czyli te nagłówki).

Cross-Origin Resource Sharing
The second technique for relaxing the same-origin policy is standardized under the name Cross-Origin Resource Sharing. This standard extends HTTP with a new Origin request header and a new Access-Control-Allow-Origin response header. It allows servers to use a header to explicitly list origins that may request a
  • Odpowiedz