【问题标题】:in chrome : conditional statement fails on jquery/ajax result在 chrome 中:条件语句在 jquery/ajax 结果上失败
【发布时间】:2012-02-15 01:06:00
【问题描述】:

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

【问题讨论】:

  • 使用console.log(data) 看看发生了什么..警报不用于调试..

标签: jquery ajax google-chrome conditional-operator


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    而不是警报。使用console.log(data),因为它实际上会向您显示类型,并且您可以记录更多详细信息而不是使用烦人的警报。

    控制台可能会向您显示潜在的类型转换(即使您正在使用 parseInt),它可能会再次转换为字符串。谁知道呢..因为所有这些浏览器都使用自己的 J/Engines...约定可能略有不同.

    例如

    • 数据 = '1'(铬)
    • 日期 = 1(即/ff)

    还有console.log($(object)) 复制了PHP 的print_r(object)

    警报不会那样做.. 只需说 [Object object] - 尝试避开警报。

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

    【讨论】:

      【解决方案3】:

      对于转换字符串你可以试试:

      data = data/1;
      

      比较使用'===':

      if(data === 1 )
      

      【讨论】:

        猜你喜欢
        • 2015-08-25
        • 1970-01-01
        • 2015-10-22
        • 2015-12-26
        • 2016-04-10
        • 1970-01-01
        • 1970-01-01
        • 2015-12-29
        • 2012-02-25
        相关资源
        最近更新 更多