application/javascript (NS_ERROR_DOM_BAD_URI)

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *