jquery: If statement not working inside ajax success function

ajax, jquery

Solution

This means that what you're responding with isn't `"SUCCESS"`. It probably has a line break or other whitespace before or after it, maybe more than one.

Perhaps:

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

Or use jQuery's `$.trim`:

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

Also be sure that you're not replying with `"Success"` or `"success"`, as string comparisons are case-sensitive.

If you're not sure:

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

or

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

Problem

I have a success function in my AJAX which returns the response text from a python script which can be either "SUCCESS" or "EMPTY". Now I want to place an if-loop inside the success function, but the if-loop is not working. I am getting the correct data from my python script because my alert statement is working fine and printing "SUCCESS". But it does not enter the ifloop I have tried a bunch of things but the control is not entering the if-loop, could anyone please tell me what I am doing wrong: ``` 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; } ```

Original source