分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

如何在函数外部获取ajax的返回值?

发布时间:2023-09-06 01:44责任编辑:苏小强关键词:暂无标签

问题:今天在开发的过程中,遇到一个小问题,就是在将ajax获取数据部分的代码封装在函数内,将ajax获取的值作为函数的返回值。

抱着爱钻研的精神,最终得到了解决方案,在这里整理出来方便以后查阅。

尝试1:同步调用,直接在ajax函数中return值
 function getAjax(){ ????var result = 1; ????$.ajax({ ????????url : ‘test.php‘, ????????type : "post", ????????data : {}, ????????async : false, ????????success : function(data) { ????????????return 2; ????????} ????}); ???return result;}
 ?--结果:失败,返回 1。 ?--分析原因:ajax内部是一个或多个定义的函数,ajax中return返回值,返回到ajax定义函数,而不是返回到ajax外层的函数getAjax
***************************************************************************************************************
尝试2:异步调用,将ajax获取的值赋值给全局变量,将全局变量返回
 function getAjax(){ ????var result = 1; ????$.ajax({ ????????url : ‘test.php‘, ????????type : "post", ????????data : {}, ????????async : true, ????????success : function(data) { ????????????result = 2; ????????} ????}); ????return result; }
 ?--结果:失败,返回 1。 ?--分析原因:ajax请求和后面的return result语句异步执行,导致return result比result = 2先执行并返回result的值
***************************************************************************************************************
正确打开方式:同步调用,且ajax获取值后对全局变量赋值,最后将全局变量return
 function getAjax(){ ????var result = 1; ????$.ajax({ ????????url : ‘test.php‘, ????????type : "post", ????????data : {}, ????????async : false, ????????success : function(data) { ????????????result = 2; ????????} ????}); ????return result; }
--结果:返回 2。成功获取返回值--成功原因:因为加了同步阻塞,先执行result = 2;再往下执行return result;
 


如何在函数外部获取ajax的返回值?

原文地址:https://www.cnblogs.com/yurenc/p/8486035.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved