ajax

  1. 同步与异步区别

  • 同步:按顺序,依次执行,向服务器发送请求-->客户端做其他操作

  • 异步:分别执行,向服务器发送请求==>同时执行其他操作

原生ajax

  • 四步骤

  1. 创建ajax对象

  • var a=new xmlhttprequest();

  1. 设定数据的传输方式(get、post),打开连接(open())

  • ajax对象.open("method","url","同步false/异步true")

  1. 获得响应数据

属性

描述

onreadystatechange

当readystate改变时就会调用该函数

responsetext

获得字符串形式的响应数据

responsexml

获得xml的形式的响应数据

readystate

0:请求未初始化 1:服务器连接已建立 2:请求处理中 3:请求处理中 4:请求已完成,且响应已就绪

status

200:ok 404:未找到页面

  1. 发送https请求:ajax.send()

原生ajax四步骤代码:

<button>获取ajax</button><div></div><script>document.getElementsByTagName("button")[0].onclick=function(){//创建ajax对象var ajax=new XMLHttpRequest();//请求地址ajax.open("get","http://127.0.0.1:5500/work4.html",false); //获得响应数据ajax.onreadystatechange=function(){//判断请求是否正常运行if(ajax.readyState==4&&ajax.status==200){//赋值到当前页面document.getElementsByTagName("div")[0].innerHTML=ajax.responseText;}else{alert("没请求成功")alert(ajax.readyState)alert(ajax.status)}}//发送请求ajax.send()}</script>
  • 数据交换格式【不能跨域】:

  • 获取xml文件的内容,美观的渲染到页面

<button>获取数据</button><table></table><script>document.getElementsByTagName("button")[0].onclick=function(){varajax=newXMLHttpRequest;ajax.open("get","work1.xml",true);ajax.onreadystatechange=function(){if(ajax.status==200&&ajax.readyState==4){xixi(ajax.responseXML);}}ajax.send()}functionxixi(obj){vartable="<table><tr><th>姓名</th><th>年龄</th><th>地址</th></tr>"varxml=obj.getElementsByTagName("xi");for(i=0;i<xml.length;i++){table+=`<tr><td>${xml[i].getElementsByTagName("name")[0].childNodes[0].nodeValue}</td><td>${xml[i].getElementsByTagName("age")[0].childNodes[0].nodeValue}</td><td>${xml[i].getElementsByTagName("address")[0].childNodes[0].nodeValue}</td></tr>`}document.getElementsByTagName("table")[0].innerHTML=table;}</script>
  • 获取json文件的内容,美观的渲染到页面

<button>获取数据</button><table></table><script>document.getElementsByTagName("button")[0].onclick=function(){//原生ajax,4个步骤// 1.创建ajax对象varajax=newXMLHttpRequest;// 2.设置请求方式,地址,同步或异步ajax.open("get","work.json",true);// 3.获得相应数据// 如果请求状态改变触发函数ajax.onreadystatechange=function(){// 如果请求状态是4代表请求成功,并返回数据,并且正常访问服务器端页面if(ajax.readyState==4&&ajax.status==200){// 调用函数,传递实参,字符串格式的ajax对象数据xixi(ajax.responseText);}}// 4.发送请求ajax.send()}functionxixi(obj){vartable="<table><tr><th>姓名</th><th>年龄</th><th>爱好</th></tr>"//反序列化==>把json格式转化成js对象格式varxml=JSON.parse(obj);//是以数组里面写对象方式存储json数据的,所以循环数组,遍历每个对象for(iinxml){table+=`<tr><td>${xml[i].name}</td><td>${xml[i].age}</td><td>${xml[i].ah}</td></tr>`}//将拼接好的表格放在本页面上展示document.getElementsByTagName("table")[0].innerHTML=table;}</script>
  1. 数据结构:

  • 对象结构:{"key":"value","key":"value"}

  • 数组结构:[value,value]

  1. json语法注意事项:

  • 属性名必须使用双引号包裹;

  • 字符串类型的值必须使用双引号包裹;

  • JSON 中不允许使用单引号表示字符串;

  • JSON 中不能写注释;

  • JSON 的最外层必须是对象或数组格式,

  • 不能使用 undefined 或函数作为 JSON 的值。

  1. json与js对象的关系

  • JSON 是JS 对象的字符串表示法,它使用文本表示一个JS 对象的信息,本质是一个字符串。

  • js对象:var obj = {a: 'Hello', b: 'world'}

  • json:var json = '{"a": "Hello","b": "wor1d"}'

  1. json和js相互转换

  • 要实现从 JSON 字符串转换为 JS 对象,使用 JSON.parse() 方法:

varobj=json.parse('{"a": "he11o","b": "world"}');
//结果为{a:'He11o',b:'wor1d'}
  • 要实现从JS 对象转换为 JSON 字符串,使用 JSON.stringify() 方法:

varobj=json.stringify({a: 'Hello'. b:'world'}):
//结果为'{"a": "hello","b": "world"}
  1. 序列化与反序列化

  • 把js-->json的过程,叫做序列化,json.stringify()函数就叫做序列化函数。

  • 把json-->js的过程,叫做反序列化,json.parse()函数就叫做反序列化函数。

  1. json比较xml的优点:方便,小,快

js:原生ajax【纯js】相关推荐

  1. JS原生Ajax和jQuery的Ajax与代码示例

    JS原生Ajax和jQuery的Ajax [学习目标] 1,了解JS原生Ajax原理 2,掌握json数据格式 掌握json数据格式方式 掌握json的解析方式 3,掌握jQuery中的Ajax封装 ...

  2. js原生ajax跨域请求,封装一个原生js的ajax请求,支持IE9CORS跨域请求

    前言 关于纯js的ajax请求,我之前有文章写过, https://www.haorooms.com/post/js_ajax_chun , 关于CORS跨域资源共享,我也有文章写过, https:/ ...

  3. js原生ajax写法

    博主在大二做数据库课设时,接触的js. 边学边做,当时还没接触ajax,所以在遇到每次请求地址都会刷新这个问题时, 博主干了你们绝对想不到的事:在页面里用了很多"隐形"的frame ...

  4. ajax js引用,ajax 引用js文件内容

    ajax 引用js文件内容 内容精选 换一换 ConfigMap是一种用于存储应用所需配置信息的资源类型,用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件.通过ConfigMap ...

  5. ajax纯js封装函数

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)AJAX 不是新的编程语言,而是一种使用现有标准的新方法.是7种技术的综合,它包 ...

  6. js原生ajax实例详解

    <!DOCTYPE HTML> <html><head><title>please enter your title</title>< ...

  7. JS原生Ajax的使用

    1.XHR对象,原生版的Ajax xhr(俗称小黄人,O(∩_∩)O~),全名XMLHttpRequest ajax的onload方法是数据接收完毕后执行的函数. 2.FormData,模拟表单对象, ...

  8. js原生ajax与jquery的ajax的用法区别

    什么是ajax和原理? AJAX 是一种用于创建快速动态网页的技术. 通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据 XMLHttpRequest对象的基本属性: onre ...

  9. JS 原生 AJax

    防止IE下不支持 Ajax <button id="btn1">请求</button> <button id="btn2"> ...

  10. js 数组 ajax php,js里面的对象ajax post到php端直接变成数组了?

    本帖最后由 zhoumengkang 于 2013-09-12 10:03:14 编辑 事先引入了jquery var str ="{'a':'b','aa':'bb'}";var ...

最新文章

  1. MaterialImageView
  2. 查看Android API文档的正确方式
  3. Opengl-基本概念-对象(很关键啊兄弟这章)
  4. android AsyncTask 的分析与运用
  5. 第100天:CSS3中animation动画详解
  6. msdn的类型成员描述
  7. centos7完全卸载删除nginx
  8. bzoj3192: [JLOI2013]删除物品(树状数组)
  9. JDK的bin目录下各种工具的使用说明_对不起自己,这么久没写博,抱歉
  10. Linux 线程信号量同步
  11. js分页--存储数据并进行分页
  12. Spark生态圈及安装
  13. 用vb打开word excel 文件,出现提示“发现不可读取的内容”
  14. Windows系统性能分析
  15. 佛言:人有二十难(为)
  16. LaTeX自定义字体安装
  17. 第六章jQuery选择器
  18. C语言程序设计基础(01)—— 计算机与程序设计基础
  19. 换信科技B2B供应链平台“换易宝”1.0产品上线发布会盛大召开
  20. 微信小程序的页面布局(1)

热门文章

  1. 通过java.net.URL类抓取某个网页的内容 选择自 cqq 的 Blog
  2. Unity RenderTexture作为UI展示模型出现抖动
  3. 《海外社交媒体营销》一一2.5 选择正确的工具和软件
  4. [atc复盘] abc296 20230401
  5. 腾讯云服务器如何搭建跨境电商亚马逊多店铺管理环境
  6. python写采集程序_用python写的一个wordpress的采集程序
  7. 搭建一个网站,需要好几种服务器吗?
  8. UML 对象图 object diagram
  9. 弋推:企业做新闻营销有什么好处?
  10. 牛客- 字符串通配符