xhr、XMLHttpRequest使用
-
调用
xhr.open()
函数 -
调用
xhr.send()
函数 -
监听
xhr.onreadystatechange
事件
1 // 1. 创建 XHR 对象 2 var xhr = new XMLHttpRequest() 3 // 2. 调用 open 函数 4 xhr.open('GET', 'http://www.liulongbin.top:3006/api/getbooks') 5 // 3. 调用 send 函数 6 xhr.send() 7 // 4. 监听 onreadystatechange 事件 8 xhr.onreadystatechange = function () { 9 if (xhr.readyState === 4 && xhr.status === 200) { 10 // 获取服务器响应的数据 11 console.log(xhr.responseText) 12 } 13 }
每个 Ajax
请求必然处于以
1 var xhr = new XMLHttpRequest() 2 xhr.open('GET', 'http://www.liulongbin.top:3006/api/getbooks?id=1') 3 xhr.send() 4 xhr.onreadystatechange = function () { 5 if (xhr.readyState === 4 && xhr.status === 200) { 6 console.log(xhr.responseText) 7 } 8 }
如果 URL 中需要包含中文这样的字符,则必须对中文字符进行编码
-
-
decodeURI()
解码的函数
1 encodeURI('程序员') 2 decodeURI('%E9%A9%AC') 3 //输出字符 程序员
浏览器会自动对 URL 地址进行编码操作,因此,大多数情况下,程序员不需要关心 URL 地址的编码与解码操作
步骤
-
创建
xhr
对象 -
调用
xhr.open()
函数 -
设置 Content-Type 属性(固定写法)
-
调用
xhr.send()
函数,同时指定要发送的数据 -
监听
xhr.onreadystatechange
事件
1 // 1. 创建 xhr 对象 2 var xhr = new XMLHttpRequest() 3 // 2. 调用 open 函数 4 xhr.open('POST', 'http://www.liulongbin.top:3006/api/addbook') 5 // 3. 设置 Content-Type 属性(固定写法) 6 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') 7 // 4. 调用 send 函数 8 xhr.send('bookname=水浒传&author=施耐庵&publisher=上海图书出版社') 9 // 5. 监听事件 10 xhr.onreadystatechange = function () { 11 if (xhr.readyState === 4 && xhr.status === 200) { 12 console.log(xhr.responseText) 13 } 14 }
JSON为主。
数据交换格式
XML
和 HTML
类似,
XML
和 HTML
虽然都是标记语言,但是,它们两者之间没有任何的关系。
-
HTML
被设计用来描述网页上的内容,是网页内容的载体 -
XML
被设计用来传输和存储数据,是数据的载体
-
XML
格式臃肿,和数据无关的代码多,体积大,传输效率低 -
在
Javascript
中解析XML
比较麻烦
简单来讲,JSON
就是 Javascript
对象和数组的字符串表示法,它使用文本表示一个 JS
对象或数组的信息,因此,
JSON
的本质是字符串
JSON
是一种轻量级的文本数据交换格式,在作用上类似于 XML
,专门用于存储和传输数据,但
是 JSON
比 XML
更小、更快、更易解析。
现状:JSON
是在 2001 年开始被推广和使用的数据格式,到现今为止,JSON
已经成为了主流的数据交
换格式
对象结构在 JSON
中表示为 { }
括起来的内容。数据结构为 { key: value, key: value, … }
的键 布尔值、null、数组、对象
数组结构在 JSON
中表示为 [ ]
括起来的内容。数据结构为 [ "java", "javascript", 30, true … ]
。
数组中数据的类型可以是数字、字符串、布尔值、null、数组、对象6种类型。
② 字符串类型的值必须使用双引号包裹
③ JSON
中不允许使用单引号表示字符串
④ JSON
中不能写注释
⑤ JSON
的最外层必须是对象或数组格式
⑥ 不能使用 undefined
或函数作为 JSON
的值
JSON
的作用:在计算机与网络之间存储和传输数据。
JSON
的本质:用字符串来表示 Javascript
1 var xhr = new XMLHttpRequest() 2 xhr.open('GET', 'http://www.liulongbin.top:3006/api/getbooks') 3 xhr.send() 4 xhr.onreadystatechange = function () { 5 if (xhr.readyState === 4 && xhr.status === 200) { 6 console.log(xhr.responseText) 7 console.log(typeof xhr.responseText) 8 var result = JSON.parse(xhr.responseText) 9 console.log(result) 10 } 11 }
把数据对象 转换为 字符串的过程,叫做序列化,例如:调用 JSON.stringify()
函数的操作,叫做 JSON
序列化。
把字符串 转换为 数据对象的过程,叫做反序列化,例如:调用 JSON.parse()
函数的操作,叫做 JSON
-
可以设置 HTTP 请求的时限
-
可以使用
FormData
对象管理表单数据 -
可以上传文件
-
-----------------------------------------------------------------未完待更新----------------------------------------------------------------------------------