if(条件在jascript中失败)

我有以下代码在Windows中的localhost中工作。 但在服务器中相同的代码失败。

即使data==found; ,也是if条件没有被执行写入data==found; 我检查了found的返回数据值,但无法弄清楚代码未正确执行的原因

 function checkAvailability() { $("#loaderIcon").show(); jQuery.ajax({ url: "ajaxcheck.php", data:'tran_id='+$("#tran_id").val(), type: "POST", success:function(data){ console.log(data); //var x=data; $("#loaderIcon").hide(); //console.log((data=="found")); if(data=="found") { $("#singlebutton").prop('disabled', false); console.log("fail"); $("#tran_id-status").html("Found"); } else { console.log(data); $("#singlebutton").prop('disabled', true); $("#tran_id-status").html(""); console.log("ss"); } }, error:function (){} }); } 

这是ajaxcheck.php

 0) { // echo " Transaction Details Found."; echo"found"; }else{ //echo " (Enter Valid transaction id to submit)"; echo"notfound"; } } ?> 

问题是您的data变量将返回一个新的行字符。 这有两种解决方案1.修剪返回值。 2.弄清楚为什么php正在服务新线路。

解决方案1:

 if(data.trim()=="found") 

这使用JS trim函数, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim 。

解决方案2:

尝试从PHP文件的末尾删除?> (PHP文件仍然有效)。 这样,如果在它之后有额外的行,它们将不会作为输出提供,JS将不会收到它们。

从手册:

如果文件是纯PHP代码,则最好省略文件末尾的PHP结束标记。 这可以防止在PHP结束标记之后添加意外的空格或新行,这可能会导致不必要的影响,因为当程序员无意在脚本中发送任何输出时,PHP将启动输出缓冲。