解决Ajax获取文本数据为空的问题

2023-11-04

今天学习了Ajax,想自己封装一个函数,结果第一步就难住了,我无论怎样都获取不到文本文件或者Json里的值,难受的找了半天bug,百度了好久,(不是很懂后台代码,用文本文件保存的数据),找不到适合我的解决方案。关键是控制台没有报错,就是alert();出来是个空字符串......

但是,重点来了,我猛然发现会不会是变量作用域的问题!!

我在外面定义的xmlDoc=xmlhttp.responseText;还忘记写var (写了也不好使)

当我注释掉它,并且把alert(xmlDoc);换成alert(xmlhttp.responseText);的时候,奇迹出现了,我获取到了数据(笑哭......)

现将代码呈上:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>封装Ajax</title>
</head>
<body>

<button>提交数据</button>

<script>

	var oBtn = document.querySelector('button');
	oBtn.onclick = function(){
		var xmlhttp;
		//为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。
		//如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject 
		if (window.XMLHttpRequest){
			// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlhttp=new XMLHttpRequest();
		}else{
			// code for IE6, IE5
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		xmlhttp.open("GET","test.json",true);
		xmlhttp.send();
		// xmlDoc=xmlhttp.responseText;
		xmlhttp.onreadystatechange=function(){
			if (xmlhttp.readyState==4){
				if( 200<=xmlhttp.status<300||xmlhttp.status==304 ){
	    			alert(xmlhttp.responseText);     //这个bug是变量问题 这是另一个函数啦!!!!!!
				}else{
					alert('请求失败');
				}
	    	}
		}
	}
	
</script>

</body>
</html>
{
	"name": "stt",
	"age": "20"
}

 这是结果:

这个bug很......希望帮到和我有一样困扰的人~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决Ajax获取文本数据为空的问题 的相关文章

随机推荐

  • 再战WebGoat之代码审计

    声明 好好学习 天天向上 回想首次接触webgoat已是两年前 当时可能连漏洞原理都不是很明白就开始上手靶场了 也是搜了很多文章 还用的word的方式写的草稿 惭愧惭愧 webgoat一直是我心中高质量的靶场 其实当时发布文章时 我就一直在
  • github趋势追踪 2023年5月25日

    1 text2vec text2vec是一个文本向量表征工具 它可以将文本转化为向量矩阵 这个项目实现了多种文本表征和文本相似度计算模型 如Word2Vec RankBM25 Sentence BERT和CoSENT等 使用text2vec
  • 小车PCB板视觉分拣软件

    小车PCB板视觉分拣软件 前言 赛题内容 视觉算法 算法选择 算法实现过程 读入Train并创建模板 读入Test数据 图像预处理与视觉分拣 实际效果 指定读入 顺序读入 其他 UI界面设计 数据库 DEMO分享 前言 智能制造赛是中国机械
  • Qt 中开启线程的五种方式

    作者 billy 版权声明 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 简介 在开发过程中 使用线程是经常会遇到的场景 本篇文章就来整理一下 Qt 中使用线程的五种方式 方便后期回顾 前面两种比较简单 一笔带过了 主
  • 命令行前边出现base

    问题 命令行开头出现base base lihongzhang home 原因 安装了conda引起的 默认启动命令行即自动进去conda环境 解决办法 方法1 退出conda环境 base lihongzhang home conda d
  • nodejs、npm、cnpm、yarn安装及环境配置

    一 nodejs的安装 1 官网下载对应系统安装包 https nodejs org en download 2 安装时注意修改安装目录 建议放在非C盘目录下 一路默认安装即可 3 安装完成后启动命令行工具 输入 node v npm v
  • too much data for RSA block .关于RSA算法密钥长度/密文长度/明文长度

    今天在做RSA加密的时候遇到了一个这样的错误 ArrayIndexOutOfBoundsException too much data for RSA block 查询相关资料后得知该错误是加密数据过长导致的 加密数据长度 lt 模长 11
  • 各linux操作系统查看内核版本命令

    原文出处 https linuxlog cyou post 18297 html 默认情况下 所有已安装的 Linux 内核及其相关文件都存储在 boot 目录 只需使用 find 查看已安装内核列表的命令 find boot vmli b
  • 智能合约 -- 安全考量

    相关概念 就是我们写代码是考虑这种涉及到合约安全的问题 下面这个方面写合约是重点考虑 创建消息发送以太币 1 要创建消息发送以太币 您需要构建一个有效的交易 并将其发送到以太坊网络中 2 交易被发送到以太坊网络后 会经过矿工的验证和打包 并
  • VMware 创建 ubuntu

    一 下载 ubuntu镜像 1 Ubuntu下载地址参考 下载链接 本人选择下载地址 http mirrors melbourne co uk ubuntu releases 2 本人选择下载 18 4 06版本 二 创建虚拟机 点击创建虚
  • python 安装pandas

    1 pandas有啥用 pandas 是基于NumPy 的一种工具 该工具是为了解决数据分析任务而创建的 Pandas 纳入了大量库和一些标准的数据模型 提供了高效地操作大型数据集所需的工具 pandas提供了大量能使我们快速便捷地处理数据
  • HarmonyOS扫码服务,应用服务一扫直达打造系统级流量新入口

    二维码如今是移动应用流量入口以及功能实现的重要工具 也是各App的流量入口 是物 人 服务的连接器 通过扫码我们可以更便捷的生活 更高效的进行信息交互 包括信息的发布 信息的获取 在日常扫码过程中 我们也经常会遇到扫码环境暗 二维码污损 模
  • 中国现代服务业发展趋势及十四五战略模式研究报告2021-2027年

    中国现代服务业发展趋势及十四五战略模式研究报告2021 2027年 全新修订 2021年11月 报告价格 纸质版 6500元 电子版 6800元 纸质 电子 7000元 可以优惠 服务形式 文本 电子版 光盘 联 系 人 顾言 撰写单位 鸿
  • Spring Cloud Alibaba Dubbo

    Spring Cloud Alibaba Dubbo 为什么 是什么 怎么做 为什么 单体应用 单体服务经过长期的迭代更新 逐渐走向代码臃肿 高耦合 这显然与我们软件开发设计理念高内聚 低耦合背道而驰 从而难以维护 市场需求也在逐渐要求服务
  • 惠普360 g5服务器系统如何做阵列,求HP DL360G5 2.5服务器,基于windows server 2008系统安装RAID 1方法...

    一 在BIOS中打开RAID功能 安装好SATA硬盘之后 就要进入BIOS中打开南桥芯片的RAID功能 具体方法是 进入BIOS设置程序的 OnChip IDE Device 窗口 找到一个名为 SATA Mode 的选项 将它设置为 RA
  • glsl中uniform,attribute和varying详解

    openGL系列文章目录 文章目录 openGL系列文章目录 uniform attribute varying 参考 uniform 要想渲染一个场景以使它看起来是3D 的 需要构建适当的变换矩阵 并将它们应用于模型的每个顶点 在顶点着色
  • 龙斗士显示网络和服务器,龙斗士热点问题_百田网帮助中心

    战斗类问题 7 怎样组队或离开队伍 你好 小冒险家如果想要组织队伍一起去冒险 可以在页面右下方打开 组队 图标 选择 创建组队 创建一支队伍 小冒险家成功建立队伍后 打开 组队 图标 选择 邀请队友 就能邀请朋友加入队伍了 如果要离开队伍
  • 基于HTML和CSS完成京东页面的制作

    首先打开京东页面分析页面元素 由图可把整个页面分为4个部分 分别为top顶部部分 tip提示部分 mid中间部分 foot底部部分 然后编写每一部分的代码 边写边测试结果 防止一步错步步错 代码如下 HTML部分 div class top
  • C#新语法

    本文章是我听B站杨中科的所做的笔记 杨中科B站视频链接 NET 6教程 Net Core 2022视频教程 杨中科主讲 哔哩哔哩 bilibili 说明 1 C 8 0 C 9 0和C 10 0中增加了很多的新语法 这里讲解常用 重点的新语
  • 解决Ajax获取文本数据为空的问题

    今天学习了Ajax 想自己封装一个函数 结果第一步就难住了 我无论怎样都获取不到文本文件或者Json里的值 难受的找了半天bug 百度了好久 不是很懂后台代码 用文本文件保存的数据 找不到适合我的解决方案 关键是控制台没有报错 就是aler