使用原生ajax进行嵌套请求服务器回送值为空的完美解决方案

用ajax实现HTML 功能,从而达到动态从数据库中得到数据,而不要去修改jsp页面。代码: 立即下载

在进行Web开发时候使用Ajax技术进行前后台的交互是非常的常用的技术手段,而当你面临着以下的业务需求的时候你就需要进行Ajax的嵌套请求

业务需求

现在需要向服务器发送请求,我需要根据服务器那边的响应来决定是否发出另外一个请求,这叫做请求的嵌套
看以下的代码这是一个典型的请求范例
以下ajax实例代码

<script>
window.onload=function()
{
    var TBtn = document.getElementById("btn1");
    TBtn.onclick = function()
    {
        //如果有XMLHttpRequest,那就是非IE6浏览器。()里面加window的原因下面会有描述。
        if(window.XMLHttpRequest)
        {
            var TAjax = new XMLHttpRequest();//创建ajax对象
        }
        else//如果没有XMLHttpRequest,那就是IE6浏览器
        {
            var TAjax = new ActiveXObject("Microsoft.XMLHTTP");//IE6浏览器创建ajax对象
        }
        TAjax.open("GET","a.txt?t='+new Date().getTime()",true);//加上t='+new Date().getTime()"的目的是为了消除缓存,每次的t的值不一样。      
      //发送请求
        TAjax.send();

        //接收返回
        //客户端和服务器端有交互的时候会调用onreadystatechange
        TAjax.onreadystatechange=function()
        {
            if(TAjax.readyState==4)
            {
                if(TAjax.status==200)//判断是否成功,如果是200,就代表成功
                {
                    alert("成功"+TAjax.responseText);
                }
                else
                {
                    alert("失败");
                }
            }
        };
    }
};
</script>

我们可以看见在发送请求的时候我们使用这句话来决定发送什么样的请求
TAjax.open(“GET”,”a.txt?t=’+new Date().getTime()”,true);
//异步传输
//异步:多件事一件一件的做
//同步:多件事情一起进行
//但是js里面的同步和异步和现实的同步异步相反。
//同步:多件事一件一件的做
//异步:多件事情一起进行
//ajax天生是用来做异步的

问题

使用原生ajax进行嵌套请求服务器回送值为空,我们需要明白下嵌套使用的时候服务器干了啥事情,首先先发送请求的ajax对象会获得一把锁名为异步锁,那么一直到函数执行完毕这把锁也不会释放,所以第二层请求压根不会被执行。

解决方案

所以当我们在写第二层请求的时候就要注意发送同步请求,也就是将ajax请求的参数设为false;这样他会避开异步锁,去要同步锁
比如说按照先后顺序
1. TAjax.open(“GET”,”a.txt?t=’+new Date().getTime()”,true);
2. TAjax2.open(“GET”,”b.txt?t=’+new Date().getTime()”,false);

ajax嵌套解决方式 立即下载

相关推荐

无人机航拍实战:如何用Python代码精准计算目标地理坐标(附完整代码)

本文详细介绍了如何利用Python代码实现无人机航拍图像中目标点的精准地理位置计算。通过解析从像素坐标系到WGS84大地坐标系的完整转换链条,结合相机内参、无人机姿态与地球曲率处理,提供了可直接运行的实战代码,并重点分析了地理位置计算中的常见误差来源与应对策略,助力开发者解决实际项目中的定位漂移问题。

hh234的博客 357

原生js异步查询(ajax)多层嵌套解决

首先要弄懂js promise的用法,有心的朋友可以研究一下promise的实现。多层ajax嵌套在实际的业务中很可能发生(第一层的查询结果是第二层的参数),如果是两层嵌套,可以把第二层单独拿出来作为一个函数,但是有N层呢?想要优雅大方的解决这个问题,所以这里要用到promise链式编程技巧,写出来高端大气上档次,下面直接上代码,主要是演示为主,代码写的粗糙 var ajax1 = functi

u013067420的博客 6162

Decoder如何工作、Transformer如何训练、以及exposure bias问题

1、结合图文描述Decoder中各个模块是什么,以及是如何工作的。2、transformer是如何训练的。3、exposure bias问题造成的原因及解决方法

m0_59113542的博客 3345

Ajax请求参数传到后台为空【解决方案】

ajax post传输到后台为空? 我来告诉你这个怎么解决!网上那是一大堆,上代码的上代码,语言描述的语言描述,但也没见有个搞定的! $.ajax({ url:'/modal_add_teacher/', type: 'POST', data: {'name':name, 'class_id_list': class_id_list}, data.

weixin_46504244的博客 3827

SOC设计必看!Tessent DRC检查中最容易踩的5个坑(附解决方案)

本文针对SOC设计中Tessent DRC检查的常见问题,详细分析了5个最易忽视的陷阱,包括时钟域交叉、扫描链虚连、多电压域规则等,并提供专业解决方案。特别针对芯片设计中的DFT验证难点,分享了经过验证的调试方法和Tessent工具使用技巧,帮助工程师提升DRC检查效率。

weixin_29280657的博客 496

从零到一:TI AWR1843 Boost EVM与DCA1000 EVM的ADC数据采集实战指南

本文详细介绍了TI AWR1843 Boost EVM与DCA1000 EVM的ADC数据采集实战指南,涵盖硬件连接、软件配置、固件烧录、雷达参数设置及数据处理等关键步骤。通过MATLAB等工具,开发者可高效实现毫米波雷达数据采集,适用于自动驾驶、工业检测等领域。

weixin_29001327的博客 967

浅谈 axios ajax fetch

原生ajax //创建异步对象 var xhr = new XMLHttpRequest(); //设置请求基本信息,并加上请求头 xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.open('post', 'test.php' ); /...

qq_38188762的博客 186

USB2.0信号完整性测试之眼图

名称线缆颜色引脚描述红色绿色白色GND黑色。

qq_53766840的博客 3286

ajax,axios和fetch的比较和区别

ajax,axios和fetch的区别 1. 原生ajax 原生ajax需要在每次异步请求时创建一个XMLHttpRequest对象,通过这个对象可以从服务器获取数据 let xhr = new XMLHttpRequest(); xhr.open('get', 'test.php'); xhr.send(); xhr.onreadystatechange = function(){ if(xhr.readyState===4 && xhr.status===200){ console

weixin_43450479的博客 429

Windows下超详细安装Anaconda3以及jupyter notebook

1.下载Anaconda安装包 Anaconda官网网站:https://www.anaconda.com/products/individual下载安装包速度比较慢,国内小伙伴不建议尝试。 我们可以使用清华大学开源软件镜像站:清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,请选择适合自己系统自行下载。 下载完成后如下图: 1.安装Anaconda安装包 1.打开安装包,点击Next 2.点击I Agre

m0_37957160的博客 3801

deepstream车道线检测自定义插件化,其中要注意pipeline的配置,如果插件位置配置不对,会报input format should be RGBA when using blur-obje

以上代码中,我们先从对象池中获取一个 DsUserMeta 对象,然后使用 get_lane_line_from_frame 函数获取车道线检测结果,并使用 add_lane_line_meta 函数将其添加到 DsUserMeta 对象中。注意,上述代码中的 get_lane_line_from_frame 函数和 add_lane_line_meta 函数需要你自己实现,用于从视频帧中提取车道线检测结果,并将其添加到 DsUserMeta 中。

pvmsmfchcs的博客 690

不使用回调函数的ajax请求实现(async和await简化回调函数嵌套)

在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 $url = "http://www.google.com.hk"; $result = file_get_contents($url); echo $result; 当代码执行到第二行时,程序便陷入了等待,直到请求完成,...

diebianyi1454的博客 532

【ComfyUI】【Nunchaku】【diffusers报错解决】秋叶整合包安装 Nunchaku 报错的解决方法

最近在折腾 AI 绘图时,我尝试在秋叶的 ComfyUI 整合包中安装 `ComfyUI-nunchaku` 插件(版本 0.3.3),结果启动后直接报错,提示无法从 `accelerate.utils.memory` 中导入 `clear_device_cache`,让我一度怀疑插件是否兼容。查阅了一堆 issue 和源码之后,总算找到了原因和解决方法。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1856

javascript-不使用回调函数的ajax请求实现(async和await简化回调函数嵌套)

不使用回调函数的ajax请求实现(async和await简化回调函数嵌套) 在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 $url = "http://www.google.com.hk"; $result = file_get_contents($url); echo $result;...

cxu123321的博客 1078

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Ajax、fetch、axios的区别与优缺点

背景 前端的技术发展速度非常的快,异步请求也是其重要的体现之一,从最早的原生XHR,再到JqueryAjax的统治时代,再到近来,fetch、axios等技术也开始出现并大量投入使用。 原生XHR ...

书山有路勤为径,学海无涯苦作舟 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

第三部分 网络请求-axios

目录 1. Ajax请求 1.1 原生ajax 1.2 jqueryAjax 1.3 fetch 1.4 axios 1.5 几种ajax库的对比 2 调用Restfull接口 2.1 restfull接口规范 2.2 qs.js库 qs.stringify() 和JSON.stringify() qs.parse()和JSON.parse() 2.3 发送Get请求 2.4 发送post请求 1、Content-Type: application/json 2、Content

isaiah的专栏 1059

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

当Ajax请求遇到Session超时

前言 B/S应用中,用户登录应该是必不可少的一项;一般情况下我们会将登录用户的信息存储在Session中,当用户请求服务器资源时,在请求到达资源之前需要验证Session中是否有登录用户的信息,若是没有(用户没有登录或者Session超时),我们会让浏览器跳转到登录页面;如果Session存在且未超时,才可访问资源。 现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个

竹叶青的专栏 1万+

asp ajax局部刷新,ASP.Net用jQuery ajax实现页面局部刷新

刚开始的时候使用asp的updatepanel控件实现局部刷新,而且在本地运行正确,但是部署到服务器上就变成整个页面全部刷新了。服务器用的是Windows server2000,本地机子上用的是win7,没有找到解决办法,最后改用ajax实现,本地和服务器都完美实现局部刷新效果。前台代码:$(".textBox").change(function () {var companyName;compa...

weixin_40006763的博客 1062

Ajax、fetch、axios的区别与优缺点;axios跨域问题

背景 前端的技术发展速度非常的快,异步请求也是其重要的体现之一,从最早的原生XHR,再到JqueryAjax的统治时代,再到近来,fetch、axios等技术也开始出现并大量投入使用。 原生Ajax Ajax是指一种创建交互式网页应用的网页开发技术,并且可以做到无需重新加载整个网页的情况下,能够更新部分网页,也叫作局部更新。 XMLHttpRequest 对象 使用ajax发送请求是依靠于一个对象,叫XmlHttpRequest对象,通过这个对象我们可以从服务器获取到数据,然后再渲染到我们的页面上。现在几乎

weixin_45179978的博客 661

axios的简单介绍

一、几种异步请求方式以及其对比情况 原生ajax //创建异步对象 var xhr = new XMLHttpRequest(); //设置请求基本信息,并加上请求头 xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.open('post', 'test.php' ); //发送请求 xhr.send('name=Lan&age=

baidu_36124158的博客 508

Azure Data Studio 德语语言包(ads-language-pack-de):安装切换、贡献模型与本地化机制源码解析

Azure Data Studio 的德语语言包 `ads-language-pack-de` 为用户提供完全本地化的德语界面(UI),覆盖编辑器核心、SQL 工具链与数十个扩展模块。本文以仓库中 [德语语言包 README](https://link.gitcode.com/i/4ad965075b544ae69784fbbadf29dd19) 为主体,结合 [package.json](htt

gitblog_00415的博客 872

async和await简化回调函数嵌套

不使用回调函数的ajax请求实现(async和await简化回调函数嵌套) 在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 $url = "http://www.google.com.hk"; $result = file_get_contents($url); echo

sunscheung的博客 4445
上一篇: 后台配置报错java.lang.IllegalStateException:Failed to start component [StandardEngine[Catalina].StandardHo
下一篇: 使用Tensorflow框架完美保存并实现调用训练好的模型(是模型不是参数哦、全网首篇)
rainmaple_ty
博客等级 码龄10年 111粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值