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

可以在其外部使用ajax respone吗?

东郭淇
2023-03-14
问题内容

有什么办法在data_response外面使用$.post()吗?

这是我使用的代码的一部分:

$.post('do.php', { OP: "news_search", category: cat_id },
    function(data_response){
        var response = data_response; //I need to access this variable outside of $.post()
    }
}, "json");

console.log(response); //response is not defined, is what I get for now

更新

没有办法使响应在全球范围内可用吗?


问题答案:

没有; $.post异步执行,因此当您调用时console.log,AJAX请求仍在运行,尚未产生响应。这是回调函数的目的:提供请求完成
要运行的代码。如果console.log进入回调函数,它应该可以工作:

$.post('do.php', { OP: "news_search", category: cat_id },
    function(data_response){
        var response = data_response; //I need to access this variable outside of $.post()
        console.log(response);
    }
}, "json");

更新: 如果您希望响应数据在全球范围内可用,则可以在全局范围内声明变量,如下所示:

var response = null;
$.post('do.php', { OP: "news_search", category: cat_id },
    function(data_response){
        response = data_response;
        console.log(response);
    }
}, "json");

当然,唯一可以确保response实际填充值的上下文是在$.postline之后提供的回调函数中 response = data_response;。如果要在脚本的任何其他阶段使用它,则必须首先检查其值;像这样的东西:

if (response !== null)
{
    console.log(response);
}

请注意,如果您在$.post调用后直接输入该代码,它将不会执行任何操作。仅当它在POST请求完成后在其他异步回调(可能是某种UI交互事件)中执行时才有用。



 类似资料:
  • 我有一个假客户端,它从微服务请求令牌。由于我正在进行多次调用,我希望缓存从外部客户端收到的响应并使用Spring Guava缓存,但它似乎不起作用。我所拥有的只是外部客户端上的配置类和注释。 我在堆栈溢出的某个地方读到,Fegn可能不支持@Cacheable注释。这是真的吗?

  • 我为我的项目从包含的ReadtheDocs主题切换到bootswatch United主题。我为这个主题做了一个,并在我的文件中将更改为。 然而,尽管项目在Read the Docs中成功构建,文档仍然保留了标准的readthedocs主题。当我在本地运行它(使用< code>mkdocs serve)时,它正确地显示了United主题。 是否还有其他代码行我应该在某处调整?我应该添加的需求文件?

  • 问题内容: 我们可以与一起使用其他任何TAG 吗? 喜欢 问题答案: 为了使您的代码有效,您不能在之外的标签中放置任何标签。 不过,您可以将任何块级元素放在中,如下所示:

  • 我目前是一名学生,在我们的移动计算主题上,我们被要求安装Flutter。我在2015年初使用MacBook Pro,当我运行flutter doctor时,它显示我需要安装Xcode,然而,我选择的IDE是Vscode。 我的问题是,是否可以在安装在外部硬盘驱动器中的Xcode中使用flutter?这是因为Xcode正在吞噬我的大部分空闲空间。如果可能的话,它的利弊是什么?

  • 问题内容: 我能够从 EC2实例* 连接到 VPC中 的 **ElastiCache Redis 实例* 。但是我想知道是否有一种方法可以连接到Amazon EC2实例外部的ElastiCache Redis节点,例如从我的 本地 开发设置或其他供应商提供的VPS实例。 目前,从我的本地设置尝试时: 过了一段时间我才超时。 问题答案: 不,您不能不采取诸如隧道之类的“技巧”,虽然可以通过测试来解决

  • 问题内容: 如果文件中有一组方法,是否可以将这些文件包含在另一个文件中,但不带任何前缀(即文件前缀)调用它们? 所以,如果我有: 我怎么这样称呼它: 问题答案: 您将需要将其他文件作为模块导入,如下所示: 如果您不想在函数名称前加上模块名称,请执行以下操作: 如果要导入模块的所有成员,请执行以下操作: 编辑: 这是Dive Into Python 的精彩一章,在该主题上有更深入的介绍。