Per qualche motivo questo codice mi dà un errore di eccezione non rilevata. Sembra che il blocco catch non stia rilevando l'errore. I blocchi di catch sono stati esaminati in modo tale da non poter generare un errore in una funzione nidificata e quindi aspettarsi che venga catturato da un'istruzione catch posta nella parte superiore della catena? Alcuni dei dati sensibili contenuti nell'applicazione in cui sto lavorando sono stati rimossi, ma ci si aspettava che leadInfo [0/1] fosse una stringa alfanumica di 32 caratteri che estraggo dai parametri URL.L'istruzione di cattura non cattura l'errore generato
Il problema sottostante è con la mia chiamata AJAX che restituisce un errore dall'API e che l'errore non viene gestito correttamente all'interno dell'applicazione. Da qui la necessità dell'affermazione del tiro. La chiamata AJAX è completa e restituisce un oggetto JSON che non contiene l'indirizzo e-mail come proprietà, quindi devo gestirlo in un modo che modifichi la pagina per rispecchiare tale.
jQuery(document).ready(function(){
try {
url = "http://api.com/api/v1/lead/" + leadInfo[1]
jQuery.ajax({
type: 'GET',
contentType: 'application/json',
url: url,
dataType : 'jsonp',
success: function (result) {
result = jQuery.parseJSON(result);
if(!result.data.email){
throw ('New exception');
}
console.log(result);
jQuery('.email').html(result.data.email);
}
});
jQuery('.surveryButton').click(function(){
window.location.replace("http://" + pgInventory.host + pgInventory.path + leadInfo[0] + "&curLeadId=" + leadInfo[1] + "&curViewedPages=0");
});
}
catch(err) {
jQuery('.email').html('your e-mail address');
jQuery('#arrowContent').remove();
}
});
Sembra Ho avuto la mia comprensione delle chiamate JSONP un po 'indietro. Avevo l'impressione che le chiamate JSONP fossero sempre costrette a essere sincrone, risulta esattamente l'opposto, sono sempre costrette a essere asincrone. Questo ha perfettamente senso ora che quel po 'di informazione è stata risolta. Grazie per la pronta risposta! – Xenology