Estoy tratando de obtener datos del archivo de texto que reside en el servidor. Tengo acceso a esa ubicación y puedo ver el contenido cuando coloco la URL en la pestaña del navegador. Estoy tratando de hacer una llamada AJAX y obtener el contenido del archivo, pero obtengo un error: error de sintaxis no detectado: identificador inesperado
Código
function logResults(json){ console.log(json); } $.ajax({ url: u, dataType: "jsonp", jsonpCallback: "logResults" });Probé debajo del código también, pero el mismo resultado,
$.ajax({ type: 'GET', url: u, crossDomain: true, dataType: 'jsonp', async: false, headers: { "Access-Control-Allow-Origin": "*" }, success: function(succ) { console.log("Success: ", succ) }, error: function(err) { console.log("Error: ", err) } });Este código siempre entra en el bloque de error.
Tu dijiste:
dataType: "jsonp",
Pero la URL está respondiendo con:
La implementación finalizó automáticamente...
Que no es JSONP, es texto sin formato.
Obtiene el error cuando intenta ejecutar el texto sin formato como JSONP.
No ponga información incorrecta en el dataType de datos .
async: false,
Eso está en desuso. No lo uses. Tampoco tiene sentido ya que está utilizando devoluciones de llamada.
También es incompatible con JSONP, por lo que se ignora (hasta que elimine el tipo de dataType ).
crossDomain: verdadero,
Esto no tiene ningún efecto a menos que esté haciendo un:
… que es muy raro.
headers: { "Access-Control-Allow-Origin": "*" },
Access-Control-Allow-Origin es un encabezado de respuesta . No corresponde a la solicitud. Intentar agregarlo a la solicitud causará problemas adicionales, ya que hará que la solicitud sea verificada previamente.
(Al menos, ese sería el caso si no hubiera dicho dataType: 'jsonp' porque agregar encabezados de solicitud es incompatible con JSONP).
El único código que necesita en el cliente es:
function logResults(result){ console.log(result); } $.ajax({ url: u, success: logResults });El servidor del que solicita los datos deberá usar CORS para otorgarle permiso para acceder a ellos si se trata de una solicitud de origen cruzado.
Es porque ha agregado dataType como jsonp , por lo que intentará analizar la respuesta a JSON y, si la respuesta no es un JSON, arrojará un error.