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

AJAX响应数据未保存到全局范围?

高茂
2023-03-14
问题内容

我遇到下面显示的行未将变量存储到全局范围的问题:

var somedata;

$.ajax({
    cache: false,
    url: verification_url,
    success: function(data){
        somedata = data;
    }
});

alert(somedata); // Undefined

我究竟做错了什么?我需要将其包装到单独的函数中还是什么?


问题答案:

alert()代码在收到响应之前运行$.ajax

这就是为什么undefined

var somedata;

$.ajax({
    cache: false,
    url: verification_url,
    success: function(data){
        somedata = data;

        alert( somedata );   // 2. this will occur after the response is received
    }
});

alert(somedata); // 1. this will occur first

在这里,您可以看到警报发生故障。默认情况下,AJAX请求不会阻止后续代码运行。

这就是拥有 回调 方法的全部目的。该方法在适当的时间被调用,而不是依赖于同步执行。



 类似资料:
  • 问题内容: 我仍然是jQuery和ajax领域的新手,但是我有一个$ .ajax请求,执行GET来检索一些XML文件(〜6KB或更少),但是在用户花那个页面的时间内,XML内容应该不会/不会更改(此设计我无法更改,在我从其他地方读取XML文件时也无权更改它)。因此,我有一个全局变量将响应数据存储到该变量中,并且对该数据进行的所有后续查询都将在此变量上进行,因此不需要进行多个请求。 考虑到XML文件

  • 我正在为我的API构建一些简单的负载测试,为了确保一切正常,我还想查看响应标头和数据。但是当我使用命令行运行测试,然后重新打开GUI以添加查看结果树侦听器并加载创建的文件时,响应标头或响应数据为空。 我在user.properties中输入了以下值(也尝试在jmeter.properties中取消这些值的注释并在那里更改它们,结果相同) 但在打开结果文件时仍然没有运气。我尝试在 -l 标记之后将文

  • 我试图使用Spring 4实现简单的Web服务。但是我的用户服务似乎不起作用。 我有如下配置: 我的内存HSQLDB的持久性配置如下: 我有一个实体。这是我的存储库: 我还在9999端口上安装了一个嵌入式jetty来运行这项服务。 当jetty启动时,我转到或或类似的smth,就会出现错误404方法也不起作用。 我认为这是因为Servlet Dispatcher不知道我公开的存储库。但我也不知道如

  • Im使用firebase,由于某些原因,我的代码没有推送数据,并且Im没有在firebase URL中看到数据。我的密码是这样的 我得到警报“保存”,但我无法在firebase URL中找到数据。 此外,为Firebase中的每个url提供的API键有什么用途。 更新:这种情况发生在IE10中。在其他浏览器中,它工作得很好

  • 我试图找出如何整合谷歌隐形reCaptcha到一个自定义提交表单附加到submit.js(ajax)。多亏了这一点,我成功地在99%的网站上使用了谷歌的新隐形reCaptcha。我尝试遵循相同的指南,但当我尝试添加到listing.php之前调用submit.js(ajax),一切正常,但如果用户犯了一些错误(忘记一些字段),值不会像以前那样保存。这里是submit.js(ajax) 有什么想法吗

  • 问题内容: 如何将表单数据保存在文件或本地db(也许使用AJAX)中,该文件或数据通过表单操作将数据发送到外部db? 我的表单的源代码在这里:http : //jsbin.com/ojUjEKa/1/edit 我应该对代码进行哪些更改(如果有)? 对。因此,我能够使用AJAX将数据存储到localStorage中,并希望将存储的数据发送到名为backend.php的文件中。这是我的html文件: