Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

154
Views
Ajax con JQuery: 200 ok, pero no "éxito"

Estoy tratando de 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 "éxito" si se recibe una respuesta. Si uso mi secuencia de comandos para enviar esa consulta a una página local para probarla, esto funciona bien. Pero cuando configuro la URL en la de Google mencionada anteriormente, como se indica en la página de la API del desarrollador, nunca veo la alerta. Según Firebug, estoy recibiendo una respuesta y un estado de 200 ok como debería, pero no estoy llegando a ese camino de "éxito". ¿Alguien sabe por qué?

Editar: debo agregar que si sigo la URL directamente, a 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.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

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

Editar : parece que Google también proporciona una API de JavaScript. Asumiría que se han diseñado de tal manera para evitar el problema de XHR entre dominios.

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

Editar : la API de JavaScript para libros quedó obsoleta. Si bien ya no es útil en la práctica, puede ver el texto original de la documentación a la que se hace referencia a través del archivo de Wayback Machine: http://web.archive.org/web/20120414070427/http://code.google.com/apis/books/docs /js/devguide.html#ejecutar

over 4 years ago · Santiago Trujillo Report

0

Es un problema entre dominios con 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 Google Ajax con jsonp para llamadas ajax entre dominios.

Documentos 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!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!