php - Ajax POST 请求返回 int 而不是字符串

标签 php ajax jquery

我有以下 JS 代码:

var dataString = "action=validateUsername"+
         "&username="+usernameRegi+
         "&lang="+lang;
$.ajax({
type: "POST",
url: "function.php",
data: dataString,
cache: false,
success: function(result)
    {           
        var expl=result.split("|");

                if(expl[0]=="1")
            alert("1");

                else if(expl[0]=="99")
        alert("99");
    }
});

这是我的 function.php

if($_POST["action"]=="validateUsername")
{
    $username=$_POST["username"];
    $lang=$_POST["lang"];

    $sqlSelect = "SELECT * FROM user where userName='".$username."'";
    $sqlQuery = mysql_query($sqlSelect);
    $rowCount = mysql_num_rows($sqlQuery);

    if($rowCount>0)
    {
    if($lang=="BM")
        echo "99|My msgA.";
    else
        echo "99|My msgB.";
    }
    else
    {
    if($lang=="BM")
        echo "1|My msgC.";
    else
        echo "1|My msgD.";  
    }
}

问题是,我的 ajax 请求永远不会在成功时提醒 1 或 99。我发现问题是expl[0]==1而不是expl[0]=="1"。

当我将代码转向此代码时,它运行顺利。:-

if(expl[0]==1)
alert("1");

else if(expl[0]==99)
alert("99");

只有当我将代码上传到服务器时才会发生这种情况。在本地主机上没有问题。有什么问题,服务器上是否有任何设置导致该问题?

有人能给我解释一下,这里发生了什么吗?

最佳答案

这是因为:

将数值分配给变量时,请勿在该值两边加上引号。如果您在数值两边加引号,它将被视为文本。

关于php - Ajax POST 请求返回 int 而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16452700/

相关文章:

jquery - 在jQuery中处理多个AJAX调用

php - 循环期间的服务器响应(状态更新)

php - 如何确保处理 ajax 请求的 PHP 脚本不可访问且用户已通过身份验证?

javascript - 使插件特定于元素

php - 如何在mysql中查找具有多行总和的id?

针对数值参数注入(inject)的 PHP 转换

php - 调用未定义函数mysql_connect()错误

php - Mysql 获取每年每个月的行数

javascript - axios:停止根据键自动排序对象

jQuery 类型错误 : <whatever> is not a function in Firefox on table object