2012-07-27 120 views
5

我的jquery ajax有问题。我有这个代码:jquery ajax数据转换为字符串

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

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

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

+1

你检查了返回的数据,试试alert(data);第一个 – 2012-07-27 08:21:38

+0

@nbrooks他有'async:false'。但是,你可能不应该用这种方式编码。 – Ariel 2012-07-27 08:25:22

+0

@Ariel哇,完全错过了那个笑话 – nbrooks 2012-07-27 08:26:51

回答

6

定义状态外AJAX调用。然后访问无处不在。

​​

用户/ validatepassword使用json_encode()

echo json_encode("Password correct"); 
+2

谢谢。你真的解决了我的问题。我做了一些小的修改,并且工作。 >:D < – comebal 2012-07-27 09:09:30

+0

@comebal:我很高兴能够提供帮助。 – mrsrinivas 2012-07-27 09:27:29

+1

提示:对于TXT或XML,使用'dataType:“text”'或'dataType:“xml”'。 – 2014-03-12 22:07:15

3

尝试使用ajax代码中的状态检查条件。

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

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

+0

感谢您的信息! – comebal 2012-07-27 09:08:49

2

你可以尝试这样的,

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

     if(response == "Password correct") 
     { 
      //do something 
     } 
+0

我做到了这一点,但也没有工作。 – comebal 2012-07-27 08:45:01

1

你看,你应该从外部处理成功函数中的消息没有。

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

嗨,感谢您的信息 – comebal 2012-07-27 09:08:13

1

@Comebal:好友,这是什么ü需要做的:

首先删除异步:假

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

随后,主要部分是确保数据从AJAX页面“密码正确“,否则你不能”做点什么“... :)