Teraz próbuję wykonać losowe wyzwanie generatora cytatów z freecodecamp. Mam jednak problemy z uzyskaniem wycen z witryny
http://api.forismatic.com z powodu CORS ... natknąłem się na czyjeś rozwiązanie, ale nie rozumiem, dlaczego zawarł zapytanie jsonp=?
na końcu adresu URL.
On stworzył:
// Random Quote Generator
var url = "http://api.forismatic.com/api/1.0/?method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?";
Śledzę wszystko oprócz jsonp=?
na końcu ... Wiem, że musi istnieć oddzwonienie i próbowałem go zastąpić callback=?
ale potem wystąpił błąd:
"Refuse to execute script from (data resource) because its MIME type ("text/html") is not executable, and strict MIME type checking is enabled."
Odpowiedzi:
0 dla odpowiedzi № 1Według dokumentów w http://forismatic.com/en/api/:
jsonp = <ciąg> - nazwa funkcji zwrotnej, używana tylko w formacie jsonp
Więc mają tylko jsonp
parametr, w którym do tej samej rzeczy używają inne interfejsy API callback
.
I tak podane method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?
dosłownie „?
”zwraca API jako nazwa funkcji zwrotnej:
$ curl "http://api.forismatic.com/api/1.0/?method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?"
?({"quoteText":"I have done my best: that is about all the philosophy of living one needs.","quoteAuthor":"Lin-yutang","senderName":"","senderLink":"","quoteLink":"http://forismatic.com/en/475d78775d/"})
Innymi słowy, nie ma nic magicznego w nazwie parametru „callback
„- nie ma standardu, który nakazuje stosowanie nazwy parametru, więc każdy dostawca interfejsu API może wybrać dowolną nazwę, jaką chce - tak jak forismatic.com dla swojego interfejsu API.