Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

355
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda