2010-03-23 14 views
6

Entiendo lo que hace JSON/JSONP, pero no soy un programador y no sé cómo extraer los principios básicos para un uso simple. He leído mucho en JSONP y muchos ejemplos sobre varios usos para JSONP, pero aún no he encontrado un ejemplo simple para recuperar texto de otra página (por ejemplo, http://www.domain.com/external/text.aspx).JSONP cómo recuperar el texto

¿Podría alguien dar un ejemplo de configuración jQuery/JSONP para recuperar texto en un div? Creo que es un uso muy básico de JSONP.

Respuesta

13

En primer lugar, es importante comprender que para que JSONP funcione, el servidor debe saber que se lo contactará con una solicitud JSONP. En otras palabras, no puede simplemente hacer una solicitud a un servidor aleatorio y esperar que funcione si el servidor no está preparado adecuadamente.

Si conoce un servidor con una URL diseñada para aceptar y responder a solicitudes JSONP, entonces lo que le devolverá será una expresión JSON envuelta en una llamada a una función. Su página incluirá esa función, de modo que cuando los resultados vuelvan del servidor, el navegador interpretará la expresión JSON y luego invocará la función.

Por lo tanto, si usted quiere hacer un servicio que devuelve un buen bloque de texto, se le invoca el servicio como este:

$.getJSON("http://www.domain.com/external/text.aspx?callback=", function(data) { 
    $('#targetDiv').text(data.text); 
}); 

El código jQuery preparar todo de tal manera que se le dirá al servidor (a través de un parámetro llamado "jsonp" en la solicitud HTTP) el nombre de la función a llamar (y jQuery creará esa función para usted). El servidor debe responder con algo como esto:

jqueryFunctionName({text: "This is a nice block of text."}) 
+0

Muchas gracias por dar un ejemplo directo. Por la presente te recomendaré como el principal candidato para el Premio Nobel de Pedagogía. También puedes regalarte un cupcake ... o algo así. Una cosa, solo para estar seguro: He puesto su código entre etiquetas justo debajo del código HTML de div. También tengo un enlace en la etiqueta a jquery-1.4.2.min.js. ¿Está bien? Si es así, no funcionó y eso significa que el servidor no está configurado para JSONP. ¿Derecha? Tal vez estoy presionando el límite aquí, pero ¿también puede dar un ejemplo sobre cómo recuperar texto a través de un proxy? Realmente lo aprecio. – Nano

+0

Sí, lo siento, no estaba tratando de proporcionar una página completa llena de código. Sí, su llamada a jQuery para recuperar el material JSON estaría dentro de una etiqueta de script, y probablemente dentro de algún tipo de controlador para un evento, tal vez una respuesta a un "clic" o algo así. En cuanto a los proxies, suponiendo que se refiera a un proxy HTTP, no debería haber nada especial; si puede acceder al servidor desde el navegador en busca de una URL normal, entonces no debería tener ningún problema. No hay nada "extraño" sobre la solicitud HTTP para el contenido JSON. – Pointy

+0

¿Debo crear el archivo JSON? – Nano