2012-03-03 116 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