$ .POST方法变量赋值

时间:2015-07-30 18:34:18

标签: jquery

使用此方法的第一个计时器。我不知道它为什么没有返回指定的返回值。任何人都可以帮我纠正我的代码,所以我可以在下面的语句中得到一个返回值true / false:

$.post('php/username_check.php',{ username: uname, password: upass }, function(data){
            if(data == 1) {
                $('#result').html("Login successful!");
                return true;

            } else {
                $('#result').html('<div style="color:red;border:1px solid red;padding:5px;">Username and password invalid.</div>');
                return false;

            }
        });

2 个答案:

答案 0 :(得分:0)

AJAX是异步的

请记住,回调函数不会立即执行,但会在结果返回时的某个时刻(可能)调用。这意味着您可以将“结果”逻辑放在该函数或该函数调用的其他函数中......例如:

function handleResult(success) {
  if(success /* === 1*/) {
    $('#result').html("Login successful!");
  }
  else {
    $('#result').html('<div style="color:red;border:1px solid red;padding:5px;">Username and password invalid.</div>');
  }
}

$.post('php/username_check.php', {username: uname, password: upass}, handleResult);

<强> jQuery.post

jQuery.post方法是jQuery.ajax方法的快捷方式,它返回jqXHR个对象。

它不会返回从post方法提供的回调函数返回的值。

  

从jQuery 1.5开始,$ .ajax()方法返回jqXHR对象   是XMLHTTPRequest对象的超集。有关更多信息,请参阅   $ .ajax条目的jqXHR部分

有关jqXHR对象的更多信息,请参阅here

答案 1 :(得分:0)

您正在使用jQuery将数据发布到指定的URL。传递给$.post的函数(作为参数)是一个回调函数。

由于它是一个AJAX请求,通常它是异步的(除非你指定它是同步的。)因此,你的javascript不会等待$.post的响应。它将继续运行到下一个声明。例如,如果您的代码如下:

function() {
  $.post(......../* your coding */);

  console.log('XXXXXXXXX');
}

上述功能几乎会同时处理$.postconsole.logconsole.log完成后,函数结束。

当收到$.post的响应时,jQuery会调用你的回调函数来继续你的逻辑。