当前位置: 首页 > 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 学习笔记
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【comparator, comparable】小总结
  • ➹使用webpack配置多页面应用(MPA)
  • Android组件 - 收藏集 - 掘金
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • ES2017异步函数现已正式可用
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript实现分页效果
  • Java-详解HashMap
  • JDK 6和JDK 7中的substring()方法
  • linux安装openssl、swoole等扩展的具体步骤
  • mongo索引构建
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python进阶细节
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 对象引论
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 服务器之间,相同帐号,实现免密钥登录
  • 入手阿里云新服务器的部署NODE
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • %@ page import=%的用法
  • (0)Nginx 功能特性
  • (二十三)Flask之高频面试点
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • .Net 6.0 处理跨域的方式
  • .net流程开发平台的一些难点(1)
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [20150629]简单的加密连接.txt
  • [BZOJ1053][HAOI2007]反素数ant
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • [iOS]-网络请求总结
  • [javaSE] GUI(事件监听机制)
  • [LitCTF 2023]Http pro max plus
  • [Luogu 3958] NOIP2017 D2T1 奶酪
  • [MAC OS] 常用工具
  • [nowCoder] 两个不等长数组求第K大数