Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

350
Vistas
¿Cómo obtener JSON de una URL externa usando JavaScript (jQuery) Ajax?

Quiero obtener algo de contenido JSON de una URL usando JavaScript (jQuery) Ajax, pero siempre falla al cargar los datos.

Mi código es muy simple:

 <div id="content"> loading... </div>
 console.log("jQuery Version: " + jQuery.fn.jquery); $.ajax({ type: "GET", url: "https://www.teamspeak.com/versions/server.json", dataType: "json", success: function(data){ $("#content").html(data); console.log("SUCCESS: " + JSON.stringify(data)); }, error: function(data){ $("#content").html("Failed to load data. " + JSON.stringify(data)); console.log("ERROR: " + JSON.stringify(data)); }, complete: function(data){ console.log("COMPLETED: " + JSON.stringify(data)); }, });

La página siempre muestra este contenido:

 Failed to load data. {"readyState":0,"status":0,"statusText":"error"}

Cuando pruebo dataType: "jsonp" (con la P ) en lugar de dataType: "json" , muestra este contenido:

 Failed to load data. {"readyState":4,"status":200,"statusText":"load"}

Entonces... ¿Tuvo éxito, pero aún se está cargando? no lo entiendo Cuando abro la URL mencionada anteriormente en mi navegador, puedo ver los datos con formato application/json .

Verifique el resultado del código aquí: https://jsfiddle.net/j2t91osz/1/

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No puede completar la llamada porque está realizando una solicitud a una URL que se encuentra en una dirección de host ( www.teamspeak.com ) que es diferente de aquella en la que se implementa la página HTML ( jsfiddle.net ).

Eche un vistazo al mensaje que se muestra en la consola:

El acceso a XMLHttpRequest en 'https://www.teamspeak.com/versions/client.json' desde el origen 'https://fiddle.jshell.net' ha sido bloqueado por la política CORS: No 'Access-Control-Allow-Origin ' el encabezado está presente en el recurso solicitado.

Cuando esto sucede (hosts diferentes), su solicitud está sujeta a la política del mismo origen . En este escenario, el navegador solo permitirá que se complete la solicitud si la respuesta contiene algunos encabezados específicos (por ejemplo Access-Control-Allow-Origin ) que autorizan la llamada. Más detalles aquí.

¿Cómo hacer que funcione?

  • Si tiene acceso al servidor, puede configurarlo para que devuelva los encabezados necesarios. (Cada servidor/idioma tiene una forma de hacerlo; consulte algunas soluciones aquí ).
  • Si no controla el servidor, puede reflejarlo (a través de herramientas como proxies inversos o mediante una aplicación muy simple que simplemente reenvía la llamada) e incluir todos los encabezados necesarios allí.
  • Para fines de demostración, también puede usar un proxy CORS gratuito como https://allorigins.win/ . Ver demostración: https://jsfiddle.net/acdcjunior/rc14skf8/ (simplemente no lo use en producción, ya que podrán inspeccionar todo su tráfico, no puede contar con su disponibilidad y muchos otros problemas)
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda