Confundido sobre cómo funciona una solicitud JSONP

Tengo problemas para entender los detalles de cómo funciona una solicitud jsonp. He leído varias fuentes, incluido el wiki en jsonp, y todavía estoy muy confundido sobre cómo la devolución de llamada obtiene una retención de la función devuelta por el servidor cuando se realiza una llamada jsonp. Por ejemplo, en la wiki, la fuente de la solicitud se establece como:

<code>src="http://server2.example.com/RetrieveUser?UserId=1234&jsonp=parseResponse"
</code>

¿Qué hace exactamente jsonp = parseResponse en realidad? Luego continúan diciendo que la carga útil es:

<code>parseResponse({"Name": "Foo", "Id" : 1234, "Rank": 7});
</code>

¿Como funciona esto? Estoy confundido en toda la funcionalidad de devolución de llamada. ¿Se pasa el nombre de la función parseResponse al servidor y de alguna manera los datos devueltos se convierten en parámetros para esta función? ¿Puede alguien explicar claramente cómo se recuperan / usan los datos de una solicitud jsonp?

Respuestas a la pregunta(3)

Su respuesta a la pregunta