2012-03-10 14 views
6

Lo que quiero hacer específicamente es obtener la imagen en miniatura de Vimeo tomando los datos json devueltos por una solicitud. No puedo usar jquery debido a que el archivo javascript es un pequeño archivo remoto que el usuario llama y jquery aumentaría su tamaño muchas veces.Obtener JSON remoto sin Jquery?

He buscado y todo parece estar hablando de jquery o de conseguirlo en otro idioma (php, por ejemplo).

He descubierto que tengo que hacer esto hasta ahora:

var script = document.createElement('script'); 
script.src = theUrlToMakeTheRequest; 
document.getElementsByTagName('head')[0].appendChild(script); 

No estoy seguro de lo que necesito para hacer la devolución de llamada y no está seguro de lo que tengo que hacer para ser capaz de utilizar la URL que recibe anexado.

+2

JSONP, o CORS? –

+0

@ MДΓΓБДLL JSONP es compatible. – qitch

+0

@qitch: ¿Cuál es el formato de los datos devueltos por la solicitud? ¿Estás seguro de que esto es JSON, no por ejemplo? JSONP? Danos el contenido exacto del recurso disponible en la URL almacenada en 'theUrlToMakeTheRequest'. – Tadeck

Respuesta

7

de la documentación de vimeo

http://vimeo.com/api/docs/simple-api

Parece que usted puede poner un? = Parámetro de devolución de llamada mifuncion en el final de la URL para hacer un tipo jsonp de devolución de llamada. Por lo tanto, su código podría ser similar a esto.

function myfunction(data) { 
    alert(data); 
} 

var script = document.createElement('script'); 
script.src = theUrlToMakeTheRequest + '?callback=myfunction'; 
document.getElementsByTagName('head')[0].appendChild(script); 

Su página de descargas parece tener ejemplos de lo que estás tratando de hacer. http://vimeo.com/api/docs/downloads

+1

(esto también se conoce como JSONP). –

3

Puede hacerlo con un XMLHttpRequest prima,

o por una pequeña biblioteca ligera que puede hacerlo echa un vistazo a Zepto.js

Si sólo incluye Zepto.js y ajax.js desde .. . https://github.com/madrobby/zepto/tree/master/src

Se podría tener una solución compatible con jQuery en 30k javascript sin comprimir (probablemente < 4k minified)

+0

No estoy seguro de que la solución XMLHttpRequest funcione en este caso, ya que está en otro dominio. –

+0

Hmm, sí, dependiendo de si Vimeo envía los encabezados 'Access-Control-Allow-Origin', la llamada entre dominios podría bloquearse. Parece que la derrota JSONP es la mejor opción según otras respuestas. – danmux