/ / ¿Por qué está escrita esta url JSONP? - cors, jsonp

¿Por qué esta URL JSONP se escribe así? - cors, jsonp

Ahora estoy intentando hacer un desafío de generador de citas aleatorias desde freecodecamp. Sin embargo, he tenido muchos problemas para obtener las citas del sitio http://api.forismatic.com debido a CORS ... luego me topé con la solución de alguien pero no entiendo por qué él ha incluido una consulta jsonp=? Al final de la url.

Creó:

// Random Quote Generator
var url = "http://api.forismatic.com/api/1.0/?method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?";

Sigo todo excepto el jsonp=? al final ... Sé que tiene que haber una devolución de llamada y traté de reemplazarla con callback=? pero luego consiguió un error:

"Refuse to execute script from (data resource) because its MIME type ("text/html") is not executable, and strict MIME type checking is enabled."

Respuestas

0 para la respuesta № 1

Por los documentos en http://forismatic.com/en/api/:

jsonp = <string> - Nombre de la función de devolución de llamada, utilizado solo para el formato jsonp

Así que solo tienen una jsonp param donde exactamente lo mismo usan otras APIs callback.

Y asi dado method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?, un literal "?"es lo que devolverá la API como el nombre de la función de devolución de llamada:

$ 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/"})

En otras palabras, no hay nada mágico en el nombre del parámetro "callback": No hay ninguna norma que obligue a usar ese nombre de parámetro, por lo que cualquier proveedor de API puede elegir usar el nombre que desee, como lo elige forismatic.com para su API.