Domanda breve: c'è un modo per fare una richiesta jsonp a un server, catturare la richiesta, ma non analizzarla come javascript? Sto usando dataType: "jsonp text" in jQuery 1.5 ma non funziona.invia richiesta come jsonp, interpreta la risposta come testo, usando jQuery 1.5
Sto tentando di accedere a un URL tra domini tramite AJAX con jsonp. Il problema è che l'altro dominio (un elenco di directory nella mia università) è molto vecchio e dubito che il server supporti jsonp.
- In Firefox, viene visualizzato un errore "Nome tag XML non corrispondente (previsto META)". In chrome ottengo un "Token imprevisto Uncaught SyntaxError <" che punta a un file corrispondente alla mia richiesta AJAX. La stringa di errore dal callback dell'errore è "parsererror".
- Non riesco a effettuare una normale chiamata AJAX: quando cambio il tipo di dati in "solo testo" o lo rimuovi tutti insieme, l'altro dominio si lamenta che l'utente non è autenticato e reindirizza a una pagina di accesso, anche se Ho già effettuato l'accesso al browser. Quando dataType è jsonp, questo non accade.
- So che il server deve supportare JSONP, e non penso che lo faccia, ma quando cambio dataType in JSONP, posso vedere le risorse della pagina di risposta mostrate sia in Chrome che in Firefox - così il server effettivamente invia la risposta al browser (una pagina Web HTML statica + un po 'di script java) - che contiene i dati che voglio ottenere.
- Il problema è che jQuery sta cercando di analizzare la risposta come javascript e fallisce (perché non è javascript). Quindi i dati finiscono nel browser - ho solo bisogno di accedervi!
- Utilizzo di dataType: "jsonp text" che dovrebbe indicare di inviare una richiesta jsonp e interpretare la risposta in quanto il testo non fa alcuna differenza, tuttavia un errore di analisi.
Quello che voglio è: un modo per accedere alla risposta da una richiesta jsonp come testo normale. Oppure, se riesco ad accedere alla risposta non elaborata da una richiesta jsonp fallita, anche questo funzionerebbe.
Grazie in anticipo!
Codice:
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"); });
Hai provato a inserire i dati in una variabile js, quindi racchiuderlo in tag js. Sembra avere senso se sta cercando di analizzarlo come js. –