6

我的 jquery ajax 有问题。我有这个代码:

$.ajax({
    url: '/users/validatepassword/'+current,
    success: function(data){
        status = data;
    },
    async: false
});

if(status == "Password correct")
{
    //do something
}

基本上,我想捕获“成功”返回的“数据”。但是我无法让 if 语句起作用。我认为“数据”不是字符串,所以我无法进行比较。

4

5 回答 5

6

在 ajax 调用之外定义状态。然后随处访问。

var status = '';
$.ajax({
    url: '/users/validatepassword/'+current,
    async: false,
    dataType: "json",
    success: function(data){
        status = data;
    },

});

if(status == "Password correct")
{
    //do something
}

users/validatepassword使用json_encode()

echo json_encode("Password correct");
于 2012-07-27T08:39:23.820 回答
4

在 ajax 代码中尝试状态检查条件。

$.ajax({
    url: '/users/validatepassword/'+current,
    success: function(data){
        status = data;
        if(status == "Password correct")
        {
         //do something
        }
    },
    async: false
});

如果条件在ajax之外,它将在ajax返回之前执行。

于 2012-07-27T08:29:31.063 回答
2

你可以这样试试

 var response = $.ajax({
            url: '/users/validatepassword/'+current,
            async: false
        }).responseText;

        if(response == "Password correct")
        {
            //do something
        }
于 2012-07-27T08:33:25.367 回答
1

您会看到您应该在成功函数中处理消息,而不是从外部处理消息。

var status = '';
$.ajax({
    url: '/users/validatepassword/'+current,
    async: false,
    success: function(data){
        status = data;
        if(status == "Password correct")
        {
            //do something
        }
    }
});
于 2012-07-27T09:00:53.903 回答
1

@Comebal:伙计,这是你需要做的:

首先删除 async:false

$.ajax({
    url: '/users/validatepassword/'+current,
    success: function(data){
       //alert(data); 
       if(data == "Password correct")
        {
                  //do something
        }
    }
});

然后,主要部分是确保来自 ajax 页面的数据是“密码正确”,否则你不能“做某事”...... :)

于 2012-07-27T11:53:11.993 回答