在chrome中:条件语句在jquery / ajax结果上失败

时间:2012-01-20 13:03:57

标签: jquery ajax google-chrome conditional-operator

这是我的代码。它向页面发送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'

3 个答案:

答案 0 :(得分:0)

取代警报..使用console.log(data),因为它实际上会显示TYPE,您可以记录更多的detials,而不是使用恼人的警报。

控制台可以显示潜在的类型转换(即使你使用的是parseInt)它可以再次转换为字符串..谁知道..因为所有这些浏览器都使用自己的J / Engines ...约定可能稍微偏离

例如

  • data ='1'(chrome)
  • date = 1(即/ ff)

同样console.log($(object))再现PHP的print_r(object)

警报不会这样做.. jsut说[对象] - 尝试并避开警报。

使用右键单击 - 检查以访问Chrome中的控制台

答案 1 :(得分:0)

对于转换字符串,您可以尝试:

data = data/1;

比较使用'===':

if(data === 1 )

答案 2 :(得分:0)

根据我的个人经验,您的num.php文件或其中一个包含的文件编码错误,并且会在结果中添加一些不可见的字符。 尝试将编码更改为utf8而不是bom,并从num.php中删除包含的文件