javascript - 如何使这个通用的 ajax 请求返回接收到的数据?

标签 javascript jquery ajax web

<分区>

我正在尝试构建一个完全通用的 jQuery ajax 函数。它会接收所有数据,甚至请求类型作为参数。之后它将替换相应的变量并构建请求。这是代码...

function server_request (type, url, dataType, data) {
    var packet;
    var response = null;

    if (packet) {
        packet.abort();
    };

    if (type == "get") {
        packet = $.ajax({ type: type, url: url, dataType: dataType });
        packet.done(function(returned_data){
              response = returned_data;
        });
    }
    return response;
    response = null;
}

所以我希望将接收到的数据存储在一个名为“response”的已声明变量中,并且我希望将其返回以供在其他地方使用。它以某种方式不起作用,并且不断返回响应变量的预定义值。有人可以帮忙吗??

最佳答案

Ajax 请求是异步的,所以当您在某处使用响应时,它现在可能已经有值(value)了。

您可能应该返回整个数据包,并在您需要响应的地方调用packet.done()

关于javascript - 如何使这个通用的 ajax 请求返回接收到的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32235158/

相关文章:

如果我使用 14 :30 目标,javascript 运输倒计时会失败

javascript - 使用 Javascript Canvas 数据填充 html 文本框

javascript - 在 JavaScript 中安全地使用钩子(Hook)事件

javascript - 如何将 Angular ngmodel 与 jQuery UI slider 一起使用?

javascript - 编辑前后元素的状态(使用 contentEditable)

javascript - 如何解决 SBT 项目中 webjars 和 scala-js jar 之间的 JS 依赖关系?

javascript - 隐藏在类型文本输入中输入的文本

jquery - 返回数据 ajax 超过 2 个值

javascript - 如何使用Ajax上传多张图片?

jquery - 来自 Safari 扩展的注入(inject)脚本中的 AJAX