Estoy escribiendo una aplicación y necesito acceder a algunos datos json en el lado del cliente desde otro servidor. Debido al problema del dominio cruzado, planeo usar jsonp. jQuery me permite hacer esto usando el método $ .getJSON(), sin embargo, no tengo forma de saber si el método ha fallado (es decir, el servidor no responde o algo así). Así que probé el enfoque para obtener los datos JSON utilizando $ .ajax en su lugar. Pero no está funcionando y no sé qué probar. Aquí un ejemplo que muestra mi problema:jQuery ajax request using jsonp error
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>TEST</title>
<script type="text/javascript" src="scripts/jquery-1.5.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#button_detect').click(function(){
var feedApiAjax = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=';
var feedApiGetJSON = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=';
var feedUrl = 'http://www.engadget.com/rss.xml';
$.ajax({
url: feedApiAjax + feedUrl,
datatype: 'jsonp',
success: function(data) {
console.log('$.ajax() success');
},
error: function(xhr, testStatus, error) {
console.log('$.ajax() error');
}
});
$.getJSON(
feedApiGetJSON + feedUrl,
function(data) {
console.log('$.getJSON success');
});
});
});
</script>
</head>
<body>
<div id="button_detect">CLICK ME!!!!</div>
</body>
Si crea una página web con este código y hacer clic en "Click Me" div verá que la solicitud $ .getJSON está funcionando y el $ .Ajax no es. He intentado poner/eliminar la "devolución de llamada =?" tg, usó los tipos de datos "jsonp" y "json", pero no funcionó.
¿Alguna idea sobre qué podría estar haciendo mal?
¡Salud!
Probablemente también debería verificar dos veces para asegurarse de que 'feedUrl' no necesita ser codificado en porcentaje para la solicitud. –