Si estas utilizando llamadas Ajax desde tu página web a dominios externos y te aparece el error NS_ERROR_DOM_BAD_URI en la extensión HttpFox de Firefox la solución es solicitar la página mediante JSON, si usas JQuery seria en teoría algo así:
$.getJSON(«http://dominioExterno.com/pagina»,function(result){
});
Pero nooooo! el error sigue apareciendo, entonces la solución correcta sería agregar un parametro X con valor = ?., en este caso le llamamos jsoncallback=? en español quedaría algo así:
$.getJSON(«http://dominioExterno.com/pagina?jsoncallback=?»,function(result){
});
Ahora ocupas moverle al servidor algunos parametrillos para que te regrese correctamente el JSON, si usas PHP puedes poner este código:
function generate_jsonp($data) {
if (preg_match(‘/\W/’, $_GET[‘jsoncallback’])) {
// if $_GET[‘jsoncallback’] contains a non-word character,
// this could be an XSS attack.
header(‘HTTP/1.1 400 Bad Request’);
exit();
}
header(‘Content-type: application/json; charset=utf-8’);
print sprintf(‘%s(%s);’, $_GET[‘jsoncallback’], json_encode($data));
}
Con esto evitas ataques XSS y te regresa tu JSON en una función tal y como te la mande getJSON, solo es cosa de enviar un arreglo a la función generate_jsonp
Y listo!.., ya debe de jalar la solicitud externa.
Aca algo de documentación para usar JSONP de forma segura: http://www.metaltoad.com/blog/using-jsonp-safely