PostMan下载地址:https://www.postman.com/downloads/
或中文版工具apifox:https://www.apifox.cn/
中文版工具apifox帮助地址:帮助中心 | Apifox 使用文档
基础
全称是 Asynchronous Javascript And XML(异步 JavaScript 和 XML)。
在网页中利用 XMLHttpRequest 对象和服务器进行数据交互的方式,就是Ajax。
1、$.get()
功能单一,发起 get 请求,从服务器拿数据。
1 2 3 4
| $.get(url, [data], [callback])
|
2、$.post()
功能单一,发起 post 请求,向服务器提交数据。
1 2 3 4
| $.post(url, [data], [callback]);
|
3、$.ajax()
功能更多
1 2 3 4 5 6
| $.ajax({ type: '', url: '', data: { }, success: function(res) { } })
|
获取表单数据:
jQuery 提供的 serialize() 函数,可以一次性获取表单中所有数据。使用 serialize()时,必须每个表单元素添加 name 属性。
例如:表单如下
1 2 3 4 5
| <form id="form1"> <input type="text" name="name" /> <input type="password" name="password" /> <button type="submit">提交</button> </form>
|
serialize() 函数获取数据:
1 2 3
| $('#form1').serialize()
|
模板引擎
art-template模板引擎:
网址: http://aui.github.io/art-template/zh-cn/index.html
下载js文件:http://aui.github.io/art-template/zh-cn/docs/installation.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <!DOCTYPE html> <html lang="en">
<head> <meta charset="UTF-8"> <title>模板引擎</title> <script src="./lib/template-web.js"></script> <script src="./lib/jquery.js"></script> </head>
<body>
<div id="container"></div>
<script type="text/html" id="example"> {{}} <h1>{{name}}</h1> </script>
<script> var data = { name: 'roydon' } var temp = template('example', data) $('#container').html(temp) </script> </body>
</html>
|
art-template标准语法:
1 2 3 4 5 6 7 8
| {{value}} {{obj.key}}//对象属性的输出 {{obj['key']}}//对象属性的输出 {{a ? b : c}}//三元表达式 {{a || b}}//逻辑 {{a + b}}//运算 //若数据值包含HTML结构需要完整输出且被渲染,则: {{@ value }}
|
条件输出:
1 2
| {{if condition}} 按需输出的内容 {{/if}} {{if condition1}} 按需输出的内容 {{else if condition2}} 按需输出的内容 {{/if}}
|
循环输出:
1 2 3
| {{each arr}} {{$index}} {{$value}} {{/each}}
|
例如输出数组:{ arr: [‘1’, ‘2’, ‘3’] }
1 2 3 4 5
| <ul> {{each arr}} <li>索引:{{$index}}值:{{$value}}</li> {{/each}} </ul>
|
过滤器:
1 2 3 4 5 6
| {{value | filterName}} //定义过滤器,过滤器名称filterName template.defaults.imports.filterName = function(value){ /*return处理的结果*/ /*必须有return*/ }
|
正则与字符串操作:
exec() 函数用于检索字符串中的正则表达式的匹配。
如果字符串中有匹配的值,则返回该匹配值,否则返回 null。
1 2 3 4
| var str = 'hello' var pattern = /o/
console.log(pattern.exec(str))
|
正则表达式中 ( ) 包起来的内容表示一个分组,可以通过分组来提取自己想要的内容,示例代码如下:
1 2 3 4 5 6 7
| var str = '<div>我是{{name}}</div>' var pattern = /{{([a-zA-Z]+)}}/
var patternResult = pattern.exec(str) console.log(patternResult)
|
replace()函数用于在字符串中用一些字符替换另一些字符
1
| var result = '123456'.replace('123', 'abc')
|
用while循环替换:
1 2 3 4 5 6 7
| var str = '<div>{{name}}今年{{ age }}岁了</div>' var pattern = /{{\s*([a-zA-Z]+)\s*}}/ var patternResult = null while(patternResult = pattern.exec(str)) { str = str.replace(patternResult[0], patternResult[1]) } console.log(str)
|
替换为数据中的值:
1 2 3 4 5 6 7 8 9
| var data = { name: '张三', age: 20 } var str = '<div>{{name}}今年{{ age }}岁了</div>' var pattern = /{{\s*([a-zA-Z]+)\s*}}/
var patternResult = null while ((patternResult = pattern.exec(str))) { str = str.replace(patternResult[0], data[patternResult[1]]) } console.log(str)
|
自定义模板引擎,封装template函数:
1 2 3 4 5 6 7 8 9
| function template(id, data) { var str = document.getElementById(id).innerHTML var pattern = /{{\s*([a-zA-Z]+)\s*}}/ var pattResult = null while (pattResult = pattern.exec(str)) { str = str.replace(pattResult[0], data[pattResult[1]]) } return str }
|
XMLHttpRequest
XMLHttpRequest(简称 xhr)是浏览器提供的 Javascript 对象,可以请求服务器上的数据资源。jQuery 中的 Ajax 函数,就是基于 xhr 对象封装出来的。
使用xhr发起GET请求:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var xhr = new XMLHttpRequest()
xhr.open('GET', 'http://www.liulongbin.top:3006/api/getbooks')
xhr.send()
xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText) } }
|
使用xhr发起POST请求:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var xhr = new XMLHttpRequest()
xhr.open('POST', 'http://www.liulongbin.top:3006/api/addbook')
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
xhr.send('bookname=水浒传&author=施耐庵&publisher=上海图书出版社')
xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText) } }
|
JSON和JS对象的互转:
- JSON 字符串转换为 JS 对象,使用 JSON.parse() 方法:
1 2
| var obj = JSON.parse('{"a": "Hello", "b": "World"}')
|
- JS 对象转换为 JSON 字符串,使用 JSON.stringify() 方法:
1 2
| var json = JSON.stringify({a: 'Hello', b: 'World'})
|