JSON从JQuery请求返回undefined

时间:2012-12-17 18:01:22

标签: php jquery

  

可能重复:
  How to return AJAX response Text?

我正在尝试为表单提交操作组合一个JQuery超时函数。我有类似的东西通过PHP进行页面重新加载,并将初始页面加载的时间存储在$_SESSION['pageLoad']中。我现在要做的就是抓住这个值并在一些JQuery数学中使用它。

SO搜索之后,我得到了以下信息:

PHP

<?php
    //filename: getsession.php
    session_start();
    echo json_encode($_SESSION['pageLoad']);

JQuery的

$("#sms-creator").submit(function() {
    var     session;
    $.ajaxSetup({cache: false})
    $.get('sms_includes/getsession.php', function(data) {
        session = data;
    });

    //at this point I just want to see what I'm getting, hence the next 2 lines...
    alert(session);
    return false;
});

PHP文件的路径是相对于表单页面而不是.js文件。

我的提醒仅返回'undefined'。我对Javascript及其库没有经验,所以这个错误对我来说并不明显。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

ajax调用是异步完成的。因此,当执行$ .get时,请求被发送到服务器以进行响应,但是,javascript程序不会等待响应,因为它是异步完成的。当您发出警报(会话)时,变量会话尚未设置为服务器返回的数据。尝试同步执行ajax,或将警报会话放在ajax回调中。