www source library how enlace ajax jquery google-books

source - Ajax con JQuery: 200 ok, pero no "éxito"



jquery version (2)

Es un problema de dominios cruzados con las llamadas ajax porque los navegadores tienen un modelo de seguridad basado en una política de dominio.

Si no desea incluir toda la API de Google Books, también puede usar la API de Ajax de Google con jsonp para las llamadas ajax de dominios cruzados.

Docs aquí:

http://code.google.com/apis/books/docs/js/jsondevguide.html#basic_query

Ejemplo de jQuery

var query = ''jquery''; var URL = ''https://ajax.googleapis.com/ajax/services/search/books?v=1.0&q='' + query; $.ajax({ type: ''GET'', url: URL, dataType: ''jsonp'', success: function( data, status ){ alert( data.responseData.results.length + '' results found!'' ); }, error: function() { alert( ''Something goes wrong!'' ); } });

Ciao!

Estoy intentando usar AJAX para enviar una consulta a Google Books y mostrar los resultados en mi sitio web. Estoy usando JQuery para enviar la solicitud y manejar la respuesta, así:

var query = [formatted input from a form]; var URL = "http://books.google.com/books/feeds/volumes?q="+query+"&start-index=1&max-results=5"; $.ajax({ type: "GET", url: URL, dataType: "xml", success: function(data, status){ alert(status); } });

Actualmente, solo tengo el script que alerta de "éxito" si se recibe una respuesta. Si utilizo mi script para enviar esa consulta a una página local para realizar pruebas, esto funciona bien. Pero cuando configuro la URL a la que aparece en Google, como se indica en la página de la API de desarrollador, nunca veo la alerta. Según Firebug, estoy recibiendo una respuesta y un estado de 200 ok como debería, pero no está llegando a ese camino "exitoso". ¿Alguien sabe por qué?

Edición: debo agregar que si sigo la URL directamente, en http://books.google.com, etc. con alguna q aleatoria, muestra el XML del feed sin problemas, por lo que la consulta no es el problema.


No puede realizar solicitudes entre dominios utilizando XMLHttpRequest en la configuración de seguridad estándar del navegador. Una posible solución es escribir una función de proxy local (asumiendo que puede crear un código del lado del servidor) que reenvíe la consulta al sitio externo y luego devuelva la respuesta.

Edición : Parece que Google también proporciona una API de JavaScript. Supongo que se han creado de tal manera que se evite el problema de XHR entre dominios.

http://code.google.com/apis/books/docs/js/devguide.html#execute

Edición : la API de JavaScript para libros está en desuso. Si bien ya no es prácticamente útil, puede ver el texto original de la documentación a través del archivo de Wayback Machine: http://web.archive.org/web/20120414070427/http://code.google.com/apis/books/docs/js/devguide.html#execute