Ho chiamato la pagina Web di terzi utilizzando jQuery ajax. In base alla loro pagina mi hanno inviato il codice di stato 200 se l'accesso è riuscito e 401 se il login non è riuscito. Ecco il mio esempio di codice jquery. Questo codice funziona bene su IE ma non funziona su Chrome o Firefox. Quale potrebbe essere il problema?jQuery ajax handle 401 Non autorizzato
$.ajax({
type: 'GET',
url: hostURL + 'j_teo_security_check?callback=?',
dataType: 'json',
data: ({j_username : $("#inp_user_name").val(), j_password: $("#inp_user_pwd").val()}),
statusCode: {
401:function() { alert("401"); },
404:function() { alert("404"); },
200:function() { alert("200"); },
201:function() { alert("201"); },
202:function() { alert("202"); }
},
complete: function(httpObj, textStatus){
alert(httpObj.status);
},
error: function(){
alert("error");
},
async: false
});
Ho provato tutte le funzioni error, success, complete e statusCode. Nessuno di loro gestisce l'errore 401.
la richiesta/risposta ok su firebug? – skafandri
Quali sono i dati inviati su IE e Chrome ('console.log' li)? Non hai più elementi con ID 'inp_user_name' o' inp_user_pwd'? Prova ad aggiungere un'opzione 'cache: false'. Inoltre, è possibile rimuovere la parentesi sulla riga 'data: ([...])'. Inoltre, hai usato il codice HTML? Che tipo di elementi sono quelli "inp_user_xxx"? – pomeh
No. Tutto funziona bene con la richiesta. Non c'è alcun problema con il codice di stato 200 quando passo la password corretta. E ottiene il codice di risposta 401 quando invio password errata come dovrebbe essere. Voglio prenderlo quando è il 401. Ma nessuna delle funzioni lo supporta. Ho provato tutte le funzioni error, success, complete e statusCode. Il mio requisito è catturare l'errore 401. Non per fermarlo. –