Pregunta breve: ¿hay alguna manera de hacer una solicitud de jsonp a un servidor, capturar la solicitud, pero no analizarla como javascript? Estoy usando dataType: "jsonp text" en jQuery 1.5 pero no está funcionando.enviar solicitud como jsonp, interpretar respuesta como texto, usando jQuery 1.5
Estoy intentando acceder a una URL entre dominios a través de AJAX con jsonp. El problema es que el otro dominio (una lista de directorios en mi universidad) es muy antiguo y dudo que el servidor admita jsonp.
- En Firefox, aparece el error "Error de nombre de etiqueta XML (META esperado)". En Chrome obtengo un "token inesperado SyntaxError no capturado <" ambos apuntando a un archivo correspondiente a mi solicitud AJAX. La cadena de error de la devolución de llamada de error es "parsererror".
- No puedo hacer una llamada AJAX normal: cuando cambio el tipo de datos a solo "texto" o lo elimino todo, el otro dominio se queja de que el usuario no está autenticado y lo redirecciona a una página de inicio de sesión, incluso si Ya he iniciado sesión en el lado del navegador. Cuando dataType es jsonp, esto no sucede.
- Sé que el servidor necesita ser compatible con JSONP, y no creo que lo haga, pero cuando cambio dataType a JSONP, veo que los recursos de la página de respuesta aparecen tanto en Chrome como en Firefox, por lo que el servidor realmente envía la respuesta al navegador (una página web HTML estática + algunas secuencias de comandos java) - que contiene los datos que quiero obtener.
- El problema es que jQuery está intentando analizar la respuesta como javascript y falla (porque no es javascript). Entonces los datos terminan en el navegador, ¡solo necesito acceder!
- Usando dataType: "jsonp text", que se supone que indica enviar una solicitud jsonp e interpretar la respuesta como texto no hace diferencia, sigue siendo un error de análisis.
Lo que quiero es: una forma de acceder a la respuesta de una solicitud jsonp como texto sin formato. O bien, si puedo acceder a la respuesta sin procesar de una solicitud jsonp fallida, eso también funcionaría.
¡Gracias de antemano!
Código:
ajax_url = 'https://somesite/?searchTerm='+query+'&searchType=lastname';
var jqxhr = $.ajax({type:"GET",
url: ajax_url,
dataType:"jsonp text",
callback: "whatever",
success:function(responseData) {
$('div#content').text(responseData.slice(0, 100));
dbg(responseData.slice(0,100));
}})
.success(function() { alert("success"); })
.error(function(obj, errStr) { alert("error"); dbg("error: " + errStr + "test: " + test.responseText + this.responseTxt);})
.complete(function() { alert("complete"); });
¿Ha intentado poner los datos a su acceso en una variable js, luego encerrándola en etiquetas js. Parece tener sentido si está intentando analizarlo como js. –