当前位置: 首页 > 面试题库 >

JavaScript如何返回AJAX响应文本?

夹谷硕
2023-03-14
问题内容

我使用原型进行AJAX开发,并且使用如下代码:

somefunction: function(){
    var result = "";
    myAjax = new Ajax.Request(postUrl, {
        method: 'post',
        postBody: postData,
        contentType: 'application/x-www-form-urlencoded',
        onComplete: function(transport){
            if (200 == transport.status) {
                result = transport.responseText;
            }
        }
    });
    return result;
}

而且我发现“结果”是一个空字符串。所以,我尝试了这个:

somefunction: function(){
    var result = "";
    myAjax = new Ajax.Request(postUrl, {
        method: 'post',
        postBody: postData,
        contentType: 'application/x-www-form-urlencoded',
        onComplete: function(transport){
            if (200 == transport.status) {
                result = transport.responseText;
                return result;
            }
        }
    });

}

但这也没有用。如何获取responseText供其他方法使用?


问题答案:

请记住,在someFunction完成工作后很久才调用onComplete。您需要做的是将回调函数作为参数传递给somefunction。当进程完成工作时(即onComplete),将调用此函数:

somefunction: function(callback){
    var result = "";
    myAjax = new Ajax.Request(postUrl, {
        method: 'post',
        postBody: postData,
        contentType: 'application/x-www-form-urlencoded',
        onComplete: function(transport){
            if (200 == transport.status) {
                result = transport.responseText;
                callback(result);
            }
        }
    });

}
somefunction(function(result){
  alert(result);
});


 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 如何从异步调用返回响应? (39个答案) 6年前关闭。 我使用原型进行AJAX开发,并使用如下代码: 而且我发现“结果”是一个空字符串。所以,我尝试了这个: 但这也没有用。如何获取responseText供其他方法使用? 问题答案: 请记住,在someFunction完成工作后很久才调用onComplete。您需要做的是将回调函数作为参数传递给somef

  • 问题内容: 我正在发送一个jQuery get请求,如下所示: 我希望收到的响应将包装在脚本标签中。 我了解浏览器不会执行响应,除非返回的返回结果没有脚本标签。通常,我会从响应中删除标签,但是在这种情况下,我无权访问在远程计算机上运行的代码,因此无法从源代码剥离标签。 有没有办法我可以从响应客户端剥离脚本标签并执行javascript? 问题答案: 您应该能够执行以下操作:

  • 问题内容: 我有一个发送Ajax命令的系统,该命令返回一个带有功能的脚本块。将此数据正确插入DIV后,我希望能够调用此函数来执行所需的操作。 这可能吗? 问题答案: 我想以这种形式正确解释您的问题:“好的,我已经用完所有的Ajax东西了;我只想知道从那时起任何时候都可以调用插入到DIV中的JavaScript函数吗? ,也就是说,我不想在上下文中将其称为“回调返回”。 好的,如果您的意思是这样,那

  • 问题内容: 一旦Ajax通过PHP返回了HTML代码,我就试图加载一个javascript函数。这需要我在ajax响应中回显javascript。 换句话说,我试图在PHP Ajax响应中添加此代码(放置在脚本标签之间)。.希望它执行 从到目前为止的内容来看,浏览器已经完成了Javascript的读取,因此不会执行。有没有办法做到这一点.... ? 问题答案: 您必须像这样评估该代码 要么 如果您

  • 问题内容: 我有一个发出Ajax请求的函数。我如何从中返回响应? 我尝试从回调中返回值,以及将响应分配给函数内部的局部变量并返回该局部变量,但这些方法均未真正返回响应。 问题答案: 问题 在一中的Ajax代表异步。这意味着发送请求(或更确切地说接收响应)已从正常执行流程中删除。在你的示例中,立即返回并且在调用;作为回调传递的函数之前执行下一条语句。 这是一个类比,希望可以使同步流和异步流之间的区别

  • 我使用Guzzle发出一个异步请求,返回JSON。呼叫工作正常,响应正常,但是: 如果我回应- 我需要使用 JSON 来验证来自服务的响应。我该怎么做?我已经浏览了文档,但我显然错过了一些东西。 本质上类似于将json getbody输出分配给$json: 感谢任何帮助问候