首页 web前端 js教程 原生JS的AJAX读取json全过程

原生JS的AJAX读取json全过程

Jun 15, 2018 pm 04:40 PM
ajax javascript

首先ajax(async javascript and xml)是用于前端与后端文件比如xml或者json之间的交互。他是一种异步加载技术,意味着你点击某个加载事件是再也不用刷新整个页面,而是发送局部请求,局部回应。由于AJAX不是完全前端,需要用到服务器,所以在做实验的时候必须把html文件和xml或json放到服务器部署的目录之中,在这里我使用的是TOMCAT 7X。

首先编辑一个简单的JSON文件,并命名为json.json,如下:

[{  "key":"value"}  ]
登录后复制
function showJson(){
var test;
if(window.XMLHttpRequest){
    test = new XMLHttpRequest();
}else if(window.ActiveXObject){
    test = new window.ActiveXObject();
}else{
    alert("请升级至最新版本的浏览器");
}
if(test !=null){
    test.open("GET","json.json",true);
    test.send(null);
    test.onreadystatechange=function(){
        if(test.readyState==4&&test.status==200){
            var obj = JSON.parse(test.responseText);
            for (var name in obj){
                alert(obj[name].key);
            }
        }
    };
}
}
window.onload=function(){
  showJson();
};</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

1、使用AJAX,我们必须new一个XMLHttpRequest()的实例,在IE低版本浏览器中是ActiveXObject()。使用if语句判断即可。

2、通过判断readyState的交互状态以及status的交互状态来触发onreadystatechange事件。

这里展开介绍一下readyState的4种取值情况:

(1)值为0:请求还没有初始化,意思是还没有开始open();

(2)值为1:请求已经初始化了但是还没有发送,意思是还没有send();

(3)值为2:请求已经发送了,后台正在处理。

(4)值为3:请求还在处理,但是部分数据可以用了,具体什么意思我现在也不是很明白。

(5)值为4:后台服务器相应完毕,也就是你现在随时可以取得请求的数据。

但是当readyState==4时我们只能知道服务器响应完毕,但还不知道服务器有没有找到我们请求的那个文件,这时就要引用status了。

这里展开介绍一下status的几种常见取值情况:

(1)200:找到了请求的文件。

(2)404:找不到请求的文件。

(3)500:服务器出错。

在同时满足了readySate==4以及status==200时我们就可以得到我们想要的value了。

3、服务器返回的值是存在responseText对象里面的。这时我们可以使用JSON.parse()来取得里面的数据。

4、我们现在把JSON文件里的一整块数据都取了出来,但如果想取到其中的某一个块值比如说:value,就必须用到遍历,比如说for循环。这里的for循环我使用了另一种形式for(var name in obj),这里的意思是取得对象的值,存放在变量name里面。因为JSON文件的结构就是由很多对象组成的。

5、如果是使用“GET”,则send()里面的值为null。如果是POST,则需要传具体的参数比如:send(name);

最后写给刚接触AJAX的同学。如何运行这段代码(配置AJAX环境)。

(1)首先你需要下载一个服务器,我建议是TOMCAT。

(2)然后把包含有你html和json文件部署(黏贴)到Tomcat根目录下的webapps文件夹里。

(3)回到Tomcat根目录,打开bin文件夹,找到startup.bat。双击打开Tomcat服务器。

(4)打开浏览器,输入http://localhost:8080/检查Tomcat是否打开,如果出现404,有可能是8080端口被占用了,这时候回到Tomcat根目录下打开conf文件夹找到server.xml文件,找到这段代码:Connector port="8080"  ,把8080修改成8081或者8082,重新在浏览器中输入http://localhost:8081/看看打开了Tomcat了没。

(5)浏览器中输入你的html文件路径,比如:http://localhost:8080/test/index.html 即可。

本文介绍了使用原生JS的AJAX读取json全过程,更多相关内容请关注php中文网。

相关推荐:

vue.js安装与配置

JS实现浏览器打印、打印预览

JS回调函数实例

以上是原生JS的AJAX读取json全过程的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

解决jQuery AJAX请求遇到403错误的方法 解决jQuery AJAX请求遇到403错误的方法 Feb 20, 2024 am 10:07 AM

标题:解决jQueryAJAX请求出现403错误的方法及代码示例403错误是指服务器禁止访问资源的请求,通常会导致出现这个错误的原因是请求缺少权限或者被服务器拒绝。在进行jQueryAJAX请求时,有时候会遇到这种情况,本文将介绍如何解决这个问题,并提供代码示例。解决方法:检查权限:首先要确保请求的URL地址是正确的,同时验证是否有足够的权限来访问该资

解决jQuery AJAX请求403错误的方法 解决jQuery AJAX请求403错误的方法 Feb 19, 2024 pm 05:55 PM

jQuery是一个流行的JavaScript库,用于简化客户端端的开发。而AJAX则是在不重新加载整个网页的情况下,通过发送异步请求和与服务器交互的技术。然而在使用jQuery进行AJAX请求时,有时会遇到403错误。403错误通常是服务器禁止访问的错误,可能是由于安全策略或权限问题导致的。在本文中,我们将讨论如何解决jQueryAJAX请求遭遇403错误

PHP 与 Ajax:构建一个自动完成建议引擎 PHP 与 Ajax:构建一个自动完成建议引擎 Jun 02, 2024 pm 08:39 PM

使用PHP和Ajax构建自动完成建议引擎:服务器端脚本:处理Ajax请求并返回建议(autocomplete.php)。客户端脚本:发送Ajax请求并显示建议(autocomplete.js)。实战案例:在HTML页面中包含脚本并指定search-input元素标识符。

如何解决jQuery AJAX报错403的问题? 如何解决jQuery AJAX报错403的问题? Feb 23, 2024 pm 04:27 PM

如何解决jQueryAJAX报错403的问题?在开发网页应用程序时,经常会使用jQuery来发送异步请求。然而,有时候在使用jQueryAJAX时可能会遇到错误代码403,表示服务器禁止访问。这种情况通常是由服务器端的安全设置所导致的,但可以通过一些方法来解决这个问题。本文将介绍如何解决jQueryAJAX报错403的问题,并提供具体的代码示例。一、使

如何使用Ajax从PHP方法中获取变量? 如何使用Ajax从PHP方法中获取变量? Mar 09, 2024 pm 05:36 PM

使用Ajax从PHP方法中获取变量是Web开发中常见的场景,通过Ajax可以实现页面无需刷新即可动态获取数据。在本文中,将介绍如何使用Ajax从PHP方法中获取变量,并提供具体的代码示例。首先,我们需要编写一个PHP文件来处理Ajax请求,并返回所需的变量。下面是一个简单的PHP文件getData.php的示例代码:

PHP 与 Ajax:创建动态加载内容的解决方案 PHP 与 Ajax:创建动态加载内容的解决方案 Jun 06, 2024 pm 01:12 PM

Ajax(异步JavaScript和XML)允许在不重新加载页面情况下添加动态内容。使用PHP和Ajax,您可以动态加载产品列表:HTML创建一个带有容器元素的页面,Ajax请求加载数据后将数据添加到该元素中。JavaScript使用Ajax通过XMLHttpRequest向服务器发送请求,从服务器获取JSON格式的产品数据。PHP使用MySQL从数据库查询产品数据,并将其编码为JSON格式。JavaScript解析JSON数据,并将其显示在页面容器中。点击按钮触发Ajax请求,加载产品列表。

PHP 与 Ajax:提高 Ajax 安全性的方法 PHP 与 Ajax:提高 Ajax 安全性的方法 Jun 01, 2024 am 09:34 AM

为了提升Ajax安全性,有几种方法:CSRF保护:生成令牌并将其发送到客户端,在请求中添加到服务器端进行验证。XSS保护:使用htmlspecialchars()过滤输入,防止恶意脚本注入。Content-Security-Policy头:限制恶意资源加载,指定允许加载脚本和样式表的来源。验证服务器端输入:验证从Ajax请求接收的输入,防止攻击者利用输入漏洞。使用安全Ajax库:利用jQuery等库提供的自动CSRF保护模块。

通过使用Ajax函数实现异步数据交换的方法 通过使用Ajax函数实现异步数据交换的方法 Jan 26, 2024 am 09:41 AM

如何利用Ajax函数实现异步数据交互随着互联网和Web技术的发展,前端与后端之间的数据交互变得十分重要。传统的数据交互方式,如页面刷新和表单提交,已经不能满足用户的需求。而Ajax(AsynchronousJavaScriptandXML)则成为了实现异步数据交互的重要工具。Ajax通过使用JavaScript和XMLHttpRequest对象,使得网

See all articles