php - 调用 Ajax 并返回响应

标签 php javascript jquery

我搜索了很多问题,但没有得到正确的答案。我根据我的研究制作了以下函数,我知道ajax调用是异步的,因此它完成将值传递给全局变量并返回该值,但我得到一个空白或未定义的值。我可以使用 $('#someid' ).html 响应或其他一些方法,但我不想实现它们。知道我在这里做错了什么

function SimpleAjax(form, postData, url)
{
    var returnData;
    var sendData;

    if (form == "") {
        sendData = postData;
    }
    else if (postData == "") {
        sendData = $(form).serialize();

    }

    $.ajax({
        type: 'POST',
        url: url,
        cache: false,
        data: sendData,
        success: function(data)
        {
            if (data != null || typeof data != 'undefined') {
                returnData = data;
            }
        }
    }).done(function(data) {
        returnData = data;
    });

    return returnData;
}​

最佳答案

问题是 返回 returnData; 发生在 success 或 done 函数执行之前。正如你所说,它是异步的。但是,您的函数 SimpleAjax 正在同步运行。

因此它开始 Ajax 调用 $.ajax({ ... });,然后执行 return returnData;

我所做的不是使用全局变量,那只会让你头疼。但传入一个函数以在成功时执行,而不是尝试返回结果。

类似...

function SimpleAjax(form, postData, url, successCallback)
{
    var returnData;
    var sendData;

    if (form == "") {
        sendData = postData;
    }
    else if (postData == "") {
        sendData = $(form).serialize();

    }

    $.ajax({
        type: 'POST',
        url: url,
        cache: false,
        data: sendData,
        success: successCallback
    });
}​

//TODO: set your input parameters
SimpleAjax(form, postdata, url, function(data) {
    alert(data);
});

关于php - 调用 Ajax 并返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12301875/

相关文章:

javascript - 如何使用 jQuery 从 <template> 中选择元素

javascript - 在 React 中可视化虚拟 DOM?

jquery - 所需的表单验证规则取决于

javascript - JQGrid - 日期过滤器不适用于日期格式(日期(1453636335000))

php - 如何获取 PHP 字符串的最后 7 个字符?

php - $_POST 作为函数参数

javascript - 页面不刷新数据

php - 为什么我使用绝对路径时无法附加CSS文件?

javascript - Adobe Air 和 Canvas 无法工作

jquery - 带有链接的 DIV 元素在移动设备上不可点击