当前位置: 首页 > news >正文

原生Ajax

Ajax 异步的JavaScript and XML

window.onload = function(){
    var btn = document.getElementById('btn');
    btn.onclick = function(){
    // 1.创建一个ajax对象
        // ie6以下 ActiveXObject('Microsoft.XMLHTTP')
        if(window.XMLHttpRequest){
            var xhr = new XMLHttpRequest();
        }else{
            var xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }

        xhr.open('get','getlist.php','true');
        xhr.send();
        /*
        如果是post方法要给send传参数data,并且要设置请求头;
        xhr.open('post','getlist.php','true');
        xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
        xhr.send(data);
        */

        //等待服务器返回的内容
        /*
            readyState: ajax工作状态 0初始化 1正在发送 2发送完成 3正在解析 4完成
            responseText: ajax请求返回的内容就被存放在这个属性下面
            onreadystatechange:当readyState状态值发生改变的时候触发

            status:服务器状态 http状态码
        */
        xhr.onreadystatechange = function(){
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    //alert(xhr.responseText);
                    
                    var data = JSON.parse(xhr.responseText); //将获取到的数据转换成对象
                    var list = document.getElementById('list');
                    var html = '';
                    for(var i = 0; i < data.length;i++){ //循环获得到的新闻数组
                        html +='<li><a href="">' + data[i].title + '</a> [<span>' + data[i].date + '</span>]</li>'
                    }

                    list.innerHTML = html;//innerHTML改变元素里的内容
                        
                }else{
                    alert("出错了,error:" + xhr.status);
                };
            };
        }
    }
}

补充

<!-- 
    JSON对象的两种内置方法
    stringify 可以把对象转换成对应字符串
    parse 把字符串转换成对象
-->
//JSON.stringify()将对象转换成字符串
var arr = [1,2,3];
alert(JSON.stringify(arr));

var arr = {left:100};
alert(JSON.stringify(arr));

//JSON.parse() 将数组字符串转换成对象
var string = '[100,200,300]';
var date = JSON.parse(string);
alert(date[0]);

var string = '{"left":100}';//★JSON的键名必须用双引号★
var date = JSON.parse(string);
alert(date.left);

相关文章:

  • 过中等难度题目.0310
  • QTcpSocket的连续发送数据和连续接收数据
  • HTM5新手学习的一些日常总结,相互交流和相互学习。
  • 客服系统微服务架构的演化
  • Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范推荐标准
  • IE版本多的可爱_已迁移
  • VB二进制文件读写
  • 2017,3月14号 下午
  • 奇葩设计师贾伟打开你的想象力经济
  • 关于 WordPress 上传图片的各种问题解决办法
  • 《海量日志数据分析与应用》之社交数据分析:好友推荐
  • NiFi 在Raspberry Pi安装运行实践
  • svn变更自动触发jenkins构建工程-简单版
  • mockito static method wiki
  • HBuilder 学习笔记
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • classpath对获取配置文件的影响
  • Debian下无root权限使用Python访问Oracle
  • Fabric架构演变之路
  • Java多态
  • JDK9: 集成 Jshell 和 Maven 项目.
  • python学习笔记-类对象的信息
  • Tornado学习笔记(1)
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分享几个不错的工具
  • 理清楚Vue的结构
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 实战|智能家居行业移动应用性能分析
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 新手搭建网站的主要流程
  • 移动端解决方案学习记录
  • 用简单代码看卷积组块发展
  • 由插件封装引出的一丢丢思考
  • 最简单的无缝轮播
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • raise 与 raise ... from 的区别
  • 如何在招聘中考核.NET架构师
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​configparser --- 配置文件解析器​
  • #1014 : Trie树
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (二)pulsar安装在独立的docker中,python测试
  • (二)斐波那契Fabonacci函数
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (汇总)os模块以及shutil模块对文件的操作
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选