2012-01-20 131 views
2

這是我的代碼。它發送一個Ajax請求的頁面和警報結果:條件語句失敗jQuery/ajax結果

function num(){ 
    $.ajax({ 
     type: 'POST', 
     url: 'num.php', 
     success: function(data) { 
      data = parseInt($.trim(data)); 
      if(data == 1) 
       alert(' its num 1'); 
      else 
       alert(data) 
     } 
    }) 
} 

num.php

<?php echo 1; ?> 

它在IE罰款和FF,但在Chrome條件語句不會出於某種原因,並我在警報窗口中獲得'1'

+0

使用'console.log(data)'並查看發生了什麼事情..警報不用於調試。 – ppumkin

回答

0

在我個人的經歷中,您的num.php文件或其中一個包含的文件具有不良編碼,並且會在結果中添加一些不可見的字符。 嘗試更改編碼爲utf8而不使用bom並從num.php中刪除包含的文件

0

而不是警報..使用console.log(data),因爲它實際上會向您顯示TYPE,您可以記錄更多detials而不是使用惱人的警報。

控制檯可能會顯示潛在的類型轉換(即使您使用的是parseInt)它可以再次轉換爲字符串..誰知道..因爲所有這些瀏覽器都使用它們自己的J/Engines ...約定可能會稍微關閉。

  • 數據= '1'(鉻)
  • 日期= 1(即/ FF)

而且console.log($(object))再現PHP的print_r(object)

警報沒有做到這一點.. jsut說[對象對象] - 嘗試並避開警報。

使用右鍵 - 檢查訪問控制檯在Chrome

0

對於轉換字符串你可以嘗試:

data = data/1; 

對於比較使用 '===':

if(data === 1)