未定义JQuery.ajax数据

未定义JQuery.ajax数据,jquery,ajax,Jquery,Ajax,我有一个$.ajax请求,当我发送成功的响应数据:function(data)时,我得到了数据,但由于某些原因,我不能在If语句中使用它: $.ajax({ type: "POST", url: "control.php", data: {"txtNumFattura" : $("#txtNumFattura").val(), "txtDataFattura": $("#txtDataFattura").val()},

我有一个$.ajax请求,当我发送成功的响应数据:function(data)时,我得到了数据,但由于某些原因,我不能在If语句中使用它:

    $.ajax({
      type: "POST",
      url: "control.php",
      data: {"txtNumFattura" : $("#txtNumFattura").val(),
             "txtDataFattura": $("#txtDataFattura").val()},

      success: function(data) {
        console.log(data);
        if (data == 'OK') {
          console.log("Chiave non ancora utilizzata");
          $("#submitMyForm").removeAttr("disabled");
        } 
        else if(data == 'KO') {
          $("#mySubmitForm").attr("disabled","disabled");
          console.log("Chiave Utilizzata");
        };
      }
    });

例如,console.log给了我“OK”或“KO”,但它似乎没有在if语句中读取它。

OK或KO后面可能有额外的空格。使用

console.log("*" + data + "*");
如果有,可以使用replace()删除这些。比如说,

data = data.replace(/\s/g, "");
\s
是一个空白字符,“g”表示全局。

试试看

if(data.toLowerCase().indexOf('ok') != -1){
  // ok was found
} else if (data.toLowerCase().indexOf('ko') != -1) {
  // ko was found
} else {
  // neither was found
}

如果您确定它为您提供OK或KO,您可以尝试以下方法:

if ($.trim(data) === 'OK') {
  console.log("Chiave non ancora utilizzata");
  $("#submitMyForm").removeAttr("disabled");
} else if($.trim(data) === 'KO') {
  $("#mySubmitForm").attr("disabled","disabled");
  console.log("Chiave Utilizzata");
};

您希望得到什么样的数据作为响应?如果插入的值尚未用作我的表中的主键,它只会给出“OK”作为响应。谢谢Devin,这很有帮助!你能给我解释一下为什么以前没用吗?!使用indexOf将搜索整个字符串中是否出现ok或ko,是否有任何空格或任何其他字符。。使用toLowerCase()只是为了确保无论您如何键入它,它都会找到它。@user2551659如果它对您有帮助,请不要忘记接受这个答案:)实际上这也很有效!不知道为什么,但出于某种原因,它增加了一个空格。