jquery: Se la dichiarazione non funziona all’interno della funzione di successo di ajax

Ho una funzione di successo nella mia AJAX che restituisce il testo di risposta da uno script python che può essere “SUCCESSO” o “VUOTO”. Ora voglio inserire un if-loop all’interno della funzione success, ma l’if-loop non funziona. Sto ottenendo i dati corretti dal mio script python perché la mia istruzione di avviso funziona correttamente e la stampa “SUCCESSO”. Ma non entra nel ifloop

Ho provato un sacco di cose ma il controllo non sta entrando nell’i-loop, qualcuno potrebbe dirmi per favore cosa sto facendo male:

submitHandler: function (form) { $.ajax({ type: 'post', url: '/cgi-bin/getdataworld.py', data: $(form).serialize(), success: function(data) { //document.write(result); console.log("result is "+data); alert(data); if(data === "SUCCESS"){ window.location = 'index.html'; } else{ alert("NO DATA PRESENT"); } }, error: function (responseData) { console.log('Ajax request not recieved!'); } }); return false; } 

Ciò significa che ciò a cui stai rispondendo non è "SUCCESS" . Probabilmente ha un’interruzione di linea o altri spazi bianchi prima o dopo di essa, forse più di uno.

Forse:

 if (/^\s*SUCCESS\s*$/.test(data)) { // Success } 

Oppure usa $.trim jQuery:

 if ($.trim(data) === "SUCCESS") { // Success } 

Assicurati inoltre di non rispondere con "Success" o "success" , poiché i confronti tra stringhe fanno distinzione tra maiuscole e minuscole.

Se non sei sicuro:

 if (/^\s*SUCCESS\s*$/i.test(data)) { // Success } 

o

 if ($.trim(data).toUpperCase() === "SUCCESS") { // Success } 

controlla se non hai spazi aggiuntivi prima / dopo “SUCCESSO”

E anche provare a cambiare

 if(data === "SUCCESS"){ 

a

 if(data == "SUCCESS"){ 
 submitHandler: function (form) { $.ajax({ type: 'post', url: '/cgi-bin/getdataworld.py', data: $(form).serialize(), success: function(data1) { //document.write(result); console.log("result is "+data1); alert(data1); if(data1 == "SUCCESS"){ window.location = 'index.html'; } else{ alert("NO DATA PRESENT"); } }, error: function (responseData) { console.log('Ajax rariequest not recieved!'); } }); return false; } 

prova questo qui due cose che ho notato una è === in if statement e altri stai usando i dati come variabili qualche volta i suoi conflitti in alcuni browser