¿Cómo puedo usar JSON en la página web desde una fuente sin CORS ni JSONP?

Algunos servicios de datos JSON en Internet están diseñados para ser consumidos solo por servidores y descuidan la posibilidad de ser consumidos directamente por una aplicación web.

Debido a las preocupaciones entre sitios, dichos servicios funcionarían si proporcionaran un formato JSONP o habilitaran el soporte CORS .

Quiero hacer una pequeña herramienta de JavaScript que pueda llamar a un recurso en línea que solo devuelve JSON y no, y no es compatible.

Un ejemplo de caso fue una aplicación de una sola página que estaba haciendo para la cual la única fuente de datos que pude encontrar no me proporcionó CORS o JSONP . Siendo una aplicación de una sola página, no tenía un servidor propio, por lo que estaba sujeta a la misma política de origen.

¿Qué estrategias están disponibles en tales casos?

** Una forma es encontrar un proxy que pueda acceder a una fuente de datos JSON y luego servirlo en su aplicación web transformada para trabajar con JSON , CORS o cualquier otro formato que pueda manejar sin preocuparse por las preocupaciones entre sitios.

Uno de estos proxy es el “YQL” de Yahoo .

YQL es compatible con JSONP y CORS.

Entonces, si su navegador también es compatible con CORS, puede considerarlo como un servidor proxy JSON a JSON. Si no, también es un proxy JSON a JSONP gratis:

Aquí hay un ejemplo de cómo lo usé con jQuery:

 $.getJSON("http://query.yahooapis.com/v1/public/yql", { q: "select * from json where url=\"http://airportcode.riobard.com/airport/" + code + "?fmt=JSON\"", callback: gotJSON, // you don't even need this line if your browser supports CORS format: "json" }, function(data){ if (data.query.results) { /* do something with data.query.results.json.code data.query.results.json.name data.query.results.json.location */ } else { /* no info for this code */ } } ); 

Y una versión en jsfiddle …