0

可能重复:
如何返回 AJAX 响应文本?

我正在尝试为表单提交操作组合一个 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 文件的。

我的警报只返回“未定义”。我对 Javascript 及其库没有经验,所以对我来说这个错误并不明显。任何帮助表示赞赏。

4

1 回答 1

2

ajax call is done asynchronously. so when $.get is executed, request is sent to server for response, however, the javascript program will not wait for the response because it is done asynchronously. when you alert(session), variable session hasn't been set to data returned by server. Try do ajax synchronously, or put alert session in the ajax callback.

于 2012-12-17T18:04:56.783 回答