Jquery ajax 请求无法将数据返回给其他函数
Jquery ajax request not able to return data to other function
我正在使用jquery发出一个简单的ajax请求。下面是我的 ajax 函数。
var makeJqueryAjaxRequest = function(arrParam) {
var request = $.ajax({
url : arrParam['url'],
async: false,
type: arrParam['type'],
data: arrParam['data'],
dataType: arrParam['data_type'],
success: function(data) {
if(data){
return data;
}
}
});
}
这是我的函数调用:
var items = {
"type" : 'POST',
"url" : ajaxGetUrl,
"data" : arrParam['data'],
"data_type" : 'html'
};
var msg = makeJqueryAjaxRequest(items);
现在不知道为什么我的makeJqueryAjaxRequest函数总是返回null值。如果我在成功中提醒数据:我得到的数据是完美的.但是当我尝试返回时,它给了我空值
不能从异步回调函数返回值。
因为success
是一个async
回调,当ajax Event(在本例中为成功)触发时,jQuery会调用它。因此,从此函数返回某些内容不会有任何影响,因为它们将返回到 jQuery 代码。
您可以使用以下内容
var makeJqueryAjaxRequest = function(arrParam) {
var request = $.ajax({
url : arrParam['url'],
async: false,
type: arrParam['type'],
data: arrParam['data'],
dataType: arrParam['data_type']
});
return request;
}
然后做
makeJqueryAjaxRequest(items).done(function(data){
if(data){
var msg = data;
// do whatever you like with msg now
}
});
替代回调方法:
var makeJqueryAjaxRequest = function(arrParam,callback) {
var request = $.ajax({
url : arrParam['url'],
async: false,
type: arrParam['type'],
data: arrParam['data'],
dataType: arrParam['data_type'],
success: function(data) {
if(data){
callback(data);
}
}
});
}
然后像使用它一样
makeJqueryAjaxRequest(items,function(data){
// do whatever you like with data
});
$.ajax()
上的文档
注意
使用这两种方法中的任何一种async: false
都没有必要。您可以删除它。正如文档所说
从jQuery 1.8开始,不推荐使用async:false。
相关文章:
- 如何从ipify函数返回ip地址,以便在其他函数中使用
- 如何将日期选择器返回的日期格式转换为其他格式
- 有没有办法将选择器返回到元素?是$(这个)还是其他方法
- 从异步调用返回数组,然后为数组的每个元素返回其他异步调用
- 根据其他属性返回的值设置属性
- 如果's,如果未安装,则返回到其他URL
- AJAX请求返回Javascript获胜't返回特定函数,但将返回其他函数
- JavaScript:通过其他数组元素的索引访问ArrayElement?array[array[0]返回undefin
- 返回带有其他函数的变量
- 为什么 Math.log10 在某些系统上工作,但在其他系统上返回未定义
- 为什么SQL返回的字符串长度与其他语言返回的长度不同
- 如何防止谷歌地理编码器从其他国家/地区返回结果
- 如何设置我们从 JavaScript 中其他元素的属性返回的值 onclick 函数
- Jquery ajax 请求无法将数据返回给其他函数
- 在两个或多个 UL 列表之间切换,如果单击一个列表,则其他列表会自动以初始状态返回,就像从未单击过一样
- 维基百科API解析操作仅返回“其他语言”部分
- JQuery ajax 将值返回给其他函数
- 阻止其他代码运行,直到 AJAX 请求返回某些内容
- Javascript在IE7,8,9中返回控制台错误,但在所有其他浏览器中都能完美运行
- 我可以将字段保留在填充的表单中,即使我移动到其他页面然后返回