Posibilidad de Cross-Site Scripting mediante Jquery.getJson() para OpenBizkaibus API
He actualizado la API de OpenBizkaibus para que sea posible realizar peticiones getJson() desde otras paginas. A continuación se muestra un ejemplo de cómo realizar esta petición. En el ejemplo se muestra como completar un selectbox con el listado de municipios de la consulta Consultar_FamiliasCentros y una vez seleccionado un municipio se completará otro selectbox con las lineas mediante LineasMunicipio.
<br />
<!DOCTYPE html><br />
<html><br />
<head><br />
<style>img{ height: 100px; float: left; }</style><br />
<script src="http://code.jquery.com/jquery-1.4.4.js"></script><br />
</head><br />
<body></p>
<p><p><br />
<select name="town" id="townsel"><br />
</select><br />
</p><br />
<p><br />
<select name="lines" id="linesselsel"><br />
</select><br />
</p><br />
<script></p>
<p>$(document).ready(function(){ </p>
<p> //Get Town list<br />
$.getJSON("http://openbizkaibus.appspot.com/api/Consultar_FamiliasCentros?jsoncallback=?",<br />
{},<br />
function(data) {<br />
$.each(data, function(i,object){<br />
$.each(object.Registros, function(i,registro){<br />
$(‘#townsel’).append(new Option(registro.DescripcionElemento, registro.CodigoElemento, true, true));<br />
});<br />
});<br />
});</p>
<p> //<br />
$("#townsel").change(function()<br />
{<br />
var CodigoElemento<br />
var DescripcionElemento</p>
<p> CodigoElemento = $("#townsel").val();<br />
DescripcionElemento = $("#townsel option:selected").text();</p>
<p> if(CodigoElemento.length < 2){<br />
CodigoElemento = "00"+CodigoElemento;<br />
}<br />
if(CodigoElemento.length < 3){<br />
CodigoElemento = "0"+CodigoElemento;<br />
}</p>
<p> $.getJSON("http://openbizkaibus.appspot.com/api/LineasMunicipio?jsoncallback=?",<br />
{<br />
codmunicipio: CodigoElemento,<br />
descmunicipio: DescripcionElemento<br />
},<br />
function(data) {<br />
$(‘#linesselsel’).find(‘option’).remove().end();<br />
$.each(data, function(i,object){<br />
$(‘#linesselsel’).append(new Option(object.DenominacionLinea, object.CodigoLinea, true, true));<br />
});<br />
});<br />
});<br />
});<br />
</script><br />
</body><br />
</html><br />
Para ver el ejemplo funcionando pulsar aquí.