Así que estoy tratando de hacer una solicitud al API Stack Exchange con el siguiente código de jQuery:solicitud JSONP error de regresar: "SyntaxError no detectada: símbolo inesperado:"
$.ajax({
type: 'POST',
url: 'http://api.stackoverflow.com/1.1/stats',
dataType: 'jsonp',
success: function() { console.log('Success!'); },
error: function() { console.log('Uh Oh!'); }
});
Pero cuando abro el archivo en mi máquina, ya sea Firefox o Chrome, y hacer el pedido, me sale este error:
Resource interpreted as Script but transferred with MIME type application/json.
Uncaught SyntaxError: Unexpected token :
Uh Oh!
que no tienen ni idea de lo que está pasando. Sé que Stack Exchange API Gzips sus respuestas, ¿esto causaría algún problema?
¿Qué se obtiene desde el servidor? Obtengo JSON, y JSON no es JSON-P, que encapsula los datos en una función de devolución de llamada, que debe estar en su espacio de nombres global, y que le comunicó al servidor en su solicitud (algo que no veo en su código)) El punto es que simplemente no le digas a tu jQuery que el resultado es JSONP si realmente es JSON. –
Utilicé JSONP porque se sugirió en otro lugar en StackOverflow. Cuando uso JSON obtengo este error: 'XMLHttpRequest no puede cargar http://api.stackoverflow.com/1.1/stats. El nulo de origen no está permitido por Access-Control-Allow-Origin. – theabraham
No se conoce su API, pero lo que se devuelve de esa URL es claramente JSON, como ya he dicho. Con "dataType" solo le dices * a tu jQuery * cómo interpretar el resultado, no le dices al * servidor * que quieres JSONP. –