2012-07-27 109 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頁面「密碼正確「,否則你不能」做點什麼「... :)