AJAX在调用后返回未定义的变量

时间:2017-06-20 20:38:17

标签: javascript php jquery json ajax

我正在使用Jquery,AJAX,PHP和JSON开发会话系统。

这是我的通用AJAX功能:

function ajaxConn(incomingUrl,incomingData)
  {
    var returnValue;
    $.ajax({
      url:'backend/'+incomingUrl,
      method:'POST',
      data: JSON.stringify(incomingData),
      contentType: "application/json; charset=UTF-8"
    }).done(function(response){
          returnValue = response.resp;
    });
    console.log(returnValue);
  }

这是函数的调用和要使用的结果的存储。可变数据具有先前已过滤和验证的输入值。

var data = {user:user,pass:pass};
var answer = ajaxConn('core_files/startSession.php',data);
console.log(answer);

这是我的PHP代码的标题

require 'connection.php';
mysqli_set_charset($conn,"utf8");
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$data = json_decode(file_get_contents('php://input'), true);
$user =  mysqli_real_escape_string($conn,$data["user"]);
$pass =  mysqli_real_escape_string($conn,$data["pass"]);

$response = array();

经过大量验证后,PHP根据会话情况返回一个单词: 它可以返回

$response["resp"] = 'N';
echo json_encode($response); 

错误的会话或

$response["resp"] = 'Y';
echo json_encode($response); 

成功会议。

问题在于返回值,如果我在AJAX调用中执行console.log(returnValue),它将从PHP返回正确的单词。但是,如果我退出AJAX调用,并尝试在函数中执行相同操作,则返回undefined。实际上,在函数返回时,它返回我的未定义,在

之外
ajaxConn();

我做错了什么

1 个答案:

答案 0 :(得分:0)

console.log.done内。您的当前console.log在ajax请求完成之前立即运行,并且尚未定义该值。