分享web开发知识

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

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

ajax异步传输数据,return返回值为空

发布时间:2023-09-06 01:54责任编辑:傅花花关键词:暂无标签

今天在项目中遇到了一个问题,就是在定义了一个函数drawHtml(),本意是想在函数运行结束后,返回拼接的字符串,可是函数运行结束后始终返回的是undefined

有BIG的代码:

function drawHtml(){ ???????var html =""; ???????$.ajax({ ???????????type:‘get‘, ???????????url:‘http://localhost:63342/projectStudy/json/data.json‘, ???????????success:function(data){ ???????????????var dataList = data.peopleList; ???????????????for(var i=0;i<dataList.length;i++){ ??????????????????html+=`<p>姓名</p><p>${dataList[i].name}</p> ???????????????????????????<p>年龄</p><p>${dataList[i].name}</p>` ???????????????} ???????????????console.log(html);//此处输出的html是有值的 ???????????} ???????}) ???????console.log(html);//返回的值为空 ???????return html; ???}

出现问题的原因:因为jquery的ajax是异步请求,在函数还没有执行完ajax请求时,就已经return出来了html。所以输出html是空值

解决方法:

function drawHtml(){ ???????var html =""; ???????$.ajax({ ???????????type:‘get‘, ???????????url:‘http://localhost:63342/projectStudy/json/data.json‘, ???????????async:false,//将异步的方法改为同步 ???????????success:function(data){ ???????????????var dataList = data.peopleList; ???????????????for(var i=0;i<dataList.length;i++){ ??????????????????html+=`<p>姓名</p><p>${dataList[i].name}</p> ???????????????????????????<p>年龄</p><p>${dataList[i].name}</p>` ???????????????} ???????????????console.log(html);//此处输出的html是有值的 ???????????} ???????}) ???????console.log(html);//返回的值为空 ???????return html; ???}

这样问题就解决了。

ajax异步传输数据,return返回值为空

原文地址:https://www.cnblogs.com/bllx/p/9038457.html

知识推荐

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