2011-08-03 16 views
5

Estoy esperando que alguien por ahí me puede ayudar. Intento hacer algo muy básico: usar Jquery para obtener Json de un controlador MVC3. El controlador devuelve el bien JSON si llamo a la URI directamente http://www.youtipit.org/api/GetTipitByUrl?url=http://utipi.it/t/1834 desde un navegador pero me da un resultado vacío (en Firebug) cuando trato de hacer lo siguiente:Ajax llamada para obtener JSON desde el controlador MVC3

$.getJSON('http://www.youtipit.org/API/GetTipitByUrl?url=http://www.youtipit.org/t/J1833', null, 

       function(data) { 

        if (data) { 
        alert('It Works!!'); 
        alert(data); 
        } 
       }); 

En firebug puedo obtener un código 200, pero la la respuesta esta vacia Estoy seguro de que hay algo simple que puedo hacer en mi Javascript para que funcione, pero soy nuevo en esto.

Respuesta

4

Usted probablemente está violando la restricción same origin policy. A menos que su sitio esté alojado en www.youtipit.org, no puede enviar solicitudes AJAX. Hay dos soluciones posibles a esta restricción:

  • El sitio remoto soporta JSONP (notar la diferencia con JSON) en cuyo caso la respuesta JSON se envuelve en una función especial de devolución de llamada. Para que esto funcione, el servidor remoto debe soportarlo. Verifique la documentación de la API si este es el caso. El url de ejemplo que ha mostrado y que funciona en el navegador devuelve JSON simple.
  • Si el servidor remoto no admite JSONP, pero sólo envía XML o JSON que tendrá que escribir una acción de un controlador de dominio en el que actuará como un puente entre el dominio y el dominio remoto. Luego, enviará la solicitud AJAX a esta acción del controlador que, a su vez, enviará una solicitud HTTP al dominio remoto utilizando un WebClient.
+0

Gran respuesta ... me ha orientado en la dirección correcta. Tuviste razón al sugerir usar JSonp. Esta publicación me mostró cómo implementar un resultado JSONP y ahora obtengo mi Json: [link] http://stackoverflow.com/questions/4795201/asp-net-mvc-3-jsonp-does-this-work- con-jsonvalueproviderfactory [/ link] ha guardado me tantas horas gracias. Si está interesado, le daré un consejo sobre Bitcoin en [link] http://www.youtipit.org [/ link] (tenga en cuenta que este es un sitio que cofundé para recompensar a las personas que ayudan a otros en línea). Gracias de nuevo. – kSeudo

Cuestiones relacionadas