2012-03-03 85 views
0

我使用一个ajax后,像这样......成功回调

$(document).on("click",".Resend",function() { 

    $.ajax({ 
     type: "POST", 
     url: "file.php", 
     timeout: 3000, 
     data: dataString, 
     cache: false, 
     success: function(myhtml){ 
      // If success 
      if (myhtml == "success") { 
        alert(myhtml); 
      } else { 
        alert("No"); 
      } 
     } 
    }); 
}); 

的PHP/HTML那个叫回来例子是一个简单的,因为这...

对于一些奇怪的原因,我得到虚假的回报警报=不。有人可以向我解释为什么会发生这种情况吗?

+1

字符串之前或之后可能有空格。试试'$ .trim(myhtml)=='success''。 – 2012-03-03 21:21:25

+1

你应该'alert(myhtml)'并且确切地知道它是什么,或者甚至更好地在成功处理器中放置一个断点并检查变量的确切值。 – jfriend00 2012-03-03 21:22:17

+0

这很奇怪。我做了一个alert(myhtml),当我做@ Rocket的解决方案$ .trim(myhtml)时,它没有空格,但它仍然返回true。 – Joe 2012-03-03 21:23:51

回答

3

假设您发布的页面存在,响应的内容可能包含一些空白;因此,字符串比较会失败。

你可以试试这个:

if ($.trim(myhtml) == 'success') { 
    alert(myhtml) 
} 
+0

我喜欢这个解决方案。谢谢Chris – Joe 2012-03-03 21:45:35

0

我在这里回答了类似的问题:Unable to compare two Strings in javascript

我想你可能有同样的问题。

尝试做这样的事情在你的成功回调,看到了响应文本的样子:

alert('"' + myhtml + '"'); 

我怀疑有领先或在您回应尾随空间。如果在php开始之前或结束标记之后有空间,可能会发生这种情况。

+0

奇怪的是,白色空间被添加到这个简单的回声。 – Joe 2012-03-03 21:33:35

+0

你可以发布你的PHP文件中的内容?我不认为这是来自回声。 – snjoetw 2012-03-03 21:39:01

+1

之后有一个空白空间?:(: – Joe 2012-03-03 21:45:10

0

JSON响应格式可以避免这种使用纯文本的烦人问题。

+0

我看着这个谢谢。 – Joe 2012-03-03 21:32:27