如何存储AJAX调用's变量中的数据
How can I store an AJAX call's data in a variable?
可能重复:
除了函数本身之外,不能在任何地方使用jQuery的.ajax方法中返回的数据
我正在尝试将AJAX调用的返回值存储到一个变量中。
var getJSONData = function(){
JSONData = $.getJSON('/api');
};
var reloadPage = function(json_data){
//Do some DOM manipulation with the JSON data
//console.log(json_data) returns undefined
};
reloadPage(getJSONData());
此代码不起作用。当我直接访问或使用以下代码时,api仍然有效
$.getJSON('/api', function(data){console.log(data)});
这很有效,并为我提供了我想要的JSON数据。
你知道我该怎么做吗?
怎么样
var getJSONData = function(callback){
JSONData = $.getJSON('/api', callback);
};
var reloadPage = function(json_data){
//Do some DOM manipulation with the JSON data
//console.log(json_data) returns undefined
};
getJSONData(reloadPage);
AJAX代表异步JavaScript和XML。在执行AJAX调用的那一刻,您的数据并不是立即可用的,所以这就是为什么您需要使用回调函数来对稍后的响应做出反应。
jQueryAJAX调用提供了可以使用的DeferredObjects。
var getJSONData = function(){
return $.getJSON('/api');
};
var reloadPage = function(data){
console.log(data);
};
getJSONData().done(reloadPage);
$.getJSON
不返回JSON,而是返回一个promise。
最简单的方法是这样使用:
$.getJSON('/api', reloadPage);
当浏览器收到响应时,您的reloadPage
函数将以JSON数据为参数进行调用。
$.getJSON()
是异步的。它可以通过回调访问:
var getJSONData = function(callback){
$.getJSON('/api').success(data) {
callback(data);
};
};
var reloadPage = function(){
getJSONData(function(json_data) {
//Do some DOM manipulation with the JSON data
//console.log(json_data) returns undefined
});
};
reloadPage();
相关文章:
- 如何将变量数据从Java类获取到JavaScript
- 如何获取PHP变量数据并将其存储在JavaScript变量中
- 如何将变量数据存储在其他变量中并对其进行解析
- 如何在没有web服务器的情况下将变量数据从Python传输到Javascript
- 将变量数据添加到 JSON
- 变量数据丢失的技术原因
- 如何从NodeJsServer的查询字符串中获取id或任何变量数据
- 将变量数据从操作脚本 3 发送到 JavaScript
- 将 JS 变量数据发送到可下载页面
- 如何在 php 变量中传递 jquery 变量数据
- 如何将变量数据传递到视图
- 如何将变量数据放在数组中,javascript
- 将字符串与变量数据进行比较
- 删除变量数据时出错
- 如何将大型变量数据从javascript发送到SpringMVC控制器
- Express JS - 将后端变量/数据传递给 Angular JS
- 数组键变量正在更改,但变量数据没有更改
- 变量数据错误
- 将jQuery中的变量数据保存到PHP中,并在页面重新加载后获取
- 变量变量数据未发送到数据库中