Uso ajax para obtener json de una API web de la siguiente manera.
El registro del navegador muestra que se extrajo el resultado json, pero la página devolvió la función de error: alerta ("Inténtelo más tarde"). imagen de registro del navegador ¿Hay algún problema?
¡Gracias!
$.ajax({ url :"http://dgidb.genome.wustl.edu/api/v1/interactions.json", type:"get", async:false, data: {genes: genes, interaction_sources: interaction_sources}, dataType:"jsonp", jsonp:"callback", jsonpCallback:"message", success: function(data){ alert(data); }, error: function(){ alert("Please try later"); } });Eliminar tipo de datos: "jsonp" o usar tipo de datos: "json"
Usando su código, no pude hacer que funcionara a menos que agregara comillas alrededor de los "genes" y "interaction_sources".
Si accedo a la url: http://dgidb.genome.wustl.edu/api/v1/interactions.json directamente dice: {"error":"¡Debe ingresar al menos un nombre de gen para buscar!"}
¿Quizás en lugar de "genes" y "interaction_sources" debería usar parámetros de búsqueda?
EDITAR: si pudiera proporcionar la API para el json al que intenta acceder, ¿podríamos depurarlo?
$("#runme").on("click", function() { RunMe(); }); function RunMe() { $.ajax({ url: "http://dgidb.genome.wustl.edu/api/v1/interactions.json", type: "get", async: false, data: { genes: "genes", interaction_sources: "interaction_sources" }, dataType: "jsonp", jsonp: "callback", jsonpCallback: "message", success: function(data) { alert(data); }, error: function() { alert("Please try later"); } }); }; <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <button id="runme">RUN ME!!!</button>Asegurar la fecha de respuesta de la API con el encabezado de aplicación/json
{ "matchedTerms": [], "unmatchedTerms": [ { "searchTerm": "GENES", "suggestions": [] } ] }El tipo de contenido de esta respuesta sería application/json. Probé esto en POSTMAP manualmente y funcionó. Acabo de arreglar el valor del encabezado Content-Type.