ajax成功响应问题

问题描述:

我遇到了ajax jquery函数的问题。这是可能的javascript代码:ajax成功响应问题

$.ajax({ 
    type: "POST", 
    url: "login.php", 
    data: { 
    username: username, 
    password: password 
    }, 
    dataType: "text", 
    contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15", 
    success: function (msg) { 
    $("#button").ajaxComplete(function (event, request) { 
     alert(msg == 'ok'); 
     if (msg == 'ok') { 
     $('#load').show(); 
     setTimeout(function() { 
      $("#username").css("background", "green"); 
      $("#password").css("background", "green"); // add red color 
     }, 1000) 
     setTimeout("submitForm()", 2000); 
     } else { 
     $('#load').show(); 
     setTimeout(function() { 
      $("#username").css("background", "red"); 
      $("#password").css("background", "red"); // add red color 
      $('#load').hide(); 
      $('#button').show(); 
     }, 1000); 
     } 
    }); 
    } 
}); 

我不明白为什么,如果(MSG ==“确定”)返回false,即使在对象“味精”有一个字符串“OK”。

+0

哪里'msg'从何而来? – 2012-08-02 20:12:25

+0

为什么ajaxcomplete在成功处理函数里面? – Shyju 2012-08-02 20:13:43

+0

继承人雅的http://jsbeautifier.org/不错的链接。理解你越是在你的问题上工作,越多的人将在答案上工作...... – elclanrs 2012-08-02 20:14:13

IThe成功事件需要具有三个参数的功能:
data, textStatus, andjqXHR。我假设“ok”是由login.php给出的响应,在这种情况下,这将是data参数的值。因此请检查数据参数以确定OK的值。

您也可能只想要alert(data);,以查看究竟返回的是什么。

参见:http://api.jquery.com/jQuery.ajax/

$.ajax({ 
    type: "POST", 
    url: "login.php", 
    data: { 
     username: username, 
     password: password 
    }, 
    dataType: "text", 
    contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15", 
    success: function(data, textStatus, jqXHR) { 
     alert(data == 'ok'); 
     if (data == 'ok') { 
      $('#load').show(); 
      setTimeout(function() { 
       $("#username").css("background", "green"); 
       $("#password").css("background", "green"); // add red color 
      }, 1000) 
      setTimeout("submitForm()", 2000); 
     } else { 
      $('#load').show(); 
      setTimeout(function() { 
       $("#username").css("background", "red"); 
       $("#password").css("background", "red"); // add red color 
       $('#load').hide(); 
       $('#button').show(); 
      }, 1000); 
     } 
    } 
}); 
+0

我试过你的代码,但它不工作。即使“msg”对象包含一个字符串,并且这个字符串实际上是“ok”(我已经看到它使用Firebug),它总是返回false。它很棒在另一个项目中,相同的文件login.php和脚本jQuery的工作!! Somone可以帮助我?谢谢! – 2012-08-02 20:58:59

+0

'data'的实际值是多少?这可能会帮助你弄清楚发生了什么事。 – 2012-08-02 22:49:17

+0

数据的实际值为“ok” – 2012-08-03 11:53:55