目录
浏览器中提供的XML HttpRequest用法比较复杂,所以jQuery对XMLHttpRequest进行了封装,提供了一系列Ajax相关的函数,极大地降低了Ajax的使用难度。
写代码时要引入jquery.js
jQuery中发起Ajax请求最常用的三个方法如下:
(1)$.get (url, [data], [callback]):
参数名 参数类型 是否必选 说明
url string 是 要请求的资源地址
data object 否 请求资源期间要携带的参数
callback function 否 请求成功时的回调函数
(2)$.post (url, [data], [callback]):
参数名 参数类型 是否必选 说明
url string 是 提交数据的地址
data object 否 要提交的数据
callback function 否 数据提交成功时的回调函数
(3)$.ajax()
- $.ajax({
- type: '', //请求的方式,例如GET或POST
- url :' '//请求的URL地址
- data: { },// 这次请求要携带的数据
- success: function(res) {} // 请求成功之后的回调函数
- })
(1)介绍
定义:使用Ajax请求数据时,被请求的URL地址,就叫做数据接口(简称接口) 。同时,每个接口必须有请求方式。
使用PostMan测试GET接口:
1. 选择请求的方式
2.填写请求的URL 地址
3.填写请求的参数
4.点击Send按钮发起GET请求
5.查看服务器响应的结果
使用PostMan测试POST接口
步骤:
1.选择请求的方式
2.填写请求的URL 地址
3.选择Body面板并勾选数据格式
4.填写要发送到服务器的数据
5.点击Send按钮发起POST请求
(2)接口文档
定义:接口的说明文档,是我们调用接口的依据
一个合格的接口文档,应该包含以下6项内容,从而为接口的调用提供依据:
1. 接口名称:用来标识各个接口的简单说明,如登录接口,获取图书列表接口等。
2.接口URL: 接口的调用地址。
3.调用方式: 接口的调用方式,如GET或POST.
4.参数格式: 接口需要传递的参数,每个参数必须包含参数名称、参数类型、是否必选、参数说明这4项内容。
5.响应格式: 接口的返回值的详细描述,一般包含数据名称、数据类型、说明3项内容。
6.返回示例 (可选) : 通过对象的形式, .例举服务器返回数据的结构。
用到的css库bootstrap.css
用到的javascript库jquery.js
用到的vs code插件Bootstrap 3 Snippets


返回示例

- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>Documenttitle>
- <link rel="stylesheet" href="bootstrap.css" />
- <script src="jquery.js">script>
- head>
-
- <body style="padding: 15px;">
-
- <div class="panel panel-primary">
- <div class="panel-heading">
- <h3 class="panel-title">添加新图书h3>
- div>
-
- <div class="panel-body form-inline">
-
- <div class="input-group">
- <div class="input-group-addon">书名div>
- <input type="text" class="form-control" id="iptBookname" placeholder="请输入书名">
- div>
-
- <div class="input-group">
- <div class="input-group-addon">作者div>
- <input type="text" class="form-control" id="iptAuthor" placeholder="请输入作者">
- div>
-
- <div class="input-group">
- <div class="input-group-addon">出版社div>
- <input type="text" class="form-control" id="iptPublisher" placeholder="请输入出版社">
- div>
-
- <button id="btnAdd" class="btn btn-primary">添加button>
-
- div>
- div>
-
-
- <table class="table table-bordered table-hover">
- <thead>
- <tr>
- <th>Idth>
- <th>书名th>
- <th>作者th>
- <th>出版社th>
- <th>操作th>
- tr>
- thead>
- <tbody id="tb">tbody>
- table>
-
- <script>
- $(function () {
- // 渲染图书列表数据
- function getBookList() {
- $.get('http://www.liulongbin.top:3006/api/getbooks', function (res) {
- if (res.status !== 200) return alert('获取数据失败!')
- var rows = []
- $.each(res.data, function (i, item) {
- rows.push('
' + item.id + ' ' + item.bookname + ' ' + item.author + ' ' + item.publisher + ' id + '">删除 ') - })
- //渲染表格结构
- $('#tb').empty().append(rows.join(''))
- })
- }
-
- getBookList()
- //删除图书
- /*
- //那些是后期被通过dom操作判断绑定上去的元素绑定的无法通过这种方式点击事件
- $('.del').on('click', function () {
- console.log('ok')
- }) */
-
- // 通过代理的方式为动态添加的元素绑定点击事件
- //tbody代理.del
- $('tbody').on('click', '.del', function () {
- var id = $(this).attr('data-id')
- $.get('http://www.liulongbin.top:3006/api/delbook', { id: id }, function (res) {
- if (res.status !== 200) return alert('删除图书失败!')
- //刷新列表
- getBookList()
- })
- })
- //添加图书
- $('#btnAdd').on('click', function () {
- var bookname = $('#iptBookname').val().trim()
- var author = $('#iptAuthor').val().trim()
- var publisher = $('#iptPublisher').val().trim()
- if (bookname.length <= 0 || author.length <= 0 || publisher.length <= 0) {
- return alert('请填写完整的图书信息!')
- }
-
- $.post('http://www.liulongbin.top:3006/api/addbook', { bookname: bookname, author: author, publisher: publisher }, function (res) {
- if (res.status !== 201) return alert('添加图书失败!')
- getBookList()
- //清空
- $('#iptBookname').val('')
- $('#iptAuthor').val('')
- $('#iptPublisher').val('')
- })
- })
- })
- script>
-
- body>
-
- html>
实现效果:

1)梳理案例的代码结构
①梳理页面的UI布局
②将业务代码抽离到chat.js中
③了解resetui()函数的作用:向聊天区域中追加一些聊天内容后调用此函数就能让滚动条会到最底部的位置
2)将用户输入的内容渲染到聊天窗口
- // 为发送按钮绑定鼠标点击事件
- $('#btnSend').on('click', function () {
- //获取用户输入的内容
- var text = $('#ipt').val().trim()
- //判断用户输入的内容是否为空
- if (text.length <= 0) {
- return $('#ipt').val('')
- }
- // 如果用户输入了聊天内容,则将聊天内容追加到页面上显示
- $('#talk_list').append('
' + text + ' ') - // 清空输入框
- $('#ipt').val('')
- // 重置滚动条的位置
- resetui()
- })
3)发起请求获取聊天消息
- // 获取聊天机器人发送回来的消息
- function getMsg(text) {
- $.ajax({
- method: 'GET',
- url: 'http://ajax.frontend.itheima.net:3006/api/robot',
- data: {
- spoken: text
- },
- success: function (res) {
- // console.log(res)
- if (res.message === 'success') {
- // 接收聊天消息
- var msg = res.data.info.text
- //将聊天消息渲染到页面上
- $('#talk_list').append('
' + msg + ' ') - // 重置滚动条的位置
- resetui()
- }}
- })
4)将机器人的聊天内容转为语音
- // 把文字转化为语音进行播放
- function getVoice(text) {
- $.ajax({
- method: 'GET',
- url: 'http://ajax.frontend.itheima.net:3006/api/synthesize',
- data: {
- text: text
- },
- success: function (res) {
- //如果请求成功,则res.voiceUrl 是服务器返回的音频URL地址
- if (res.status === 200) {
- // 播放语音
- $('#voice').attr('src', res.voiceUrl)
- }
- }
- })
- }
-
- <audio src="" id="voice" autoplay style="display: none;">audio>
5)使用回车发送消息
- //让文本输入框响应回车事件后,提交消息
- $('#ipt').on('keyup', function (e) {
- // e.keyCode可以获取到当前按键的编码
- if (e. keyCode === 13) {
- //调用按钮元素的click 函数, 可以通过编程的形式触发按钮的点击事件
- $('#btnSend').click ()
- })
表单由三个基本部分组成:
●表单标签
●表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件 上传框等。
●表单按钮
1)action
action属性用来规定当提交表单时,向何处发送表单数据。
action属性的值应该是后端提供的一个URL地址,这个URL地址专门负责接收表单提交过来的数据。
当