1,Boots介绍
简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。
作用:可以快速搭建响应式的网页,而不需要书写大量的 css
中文文档: https://v3.bootcss.com/
2,下载和部署
下载地址:https://v3.bootcss.com/getting-started/#download

目录结构
[root@localhost bootstrap-3.3.7-dist]# tree
.
├── css
│?? ├── bootstrap.css
│?? ├── bootstrap.css.map
│?? ├── bootstrap.min.css
│?? ├── bootstrap.min.css.map
│?? ├── bootstrap-theme.css
│?? ├── bootstrap-theme.css.map
│?? ├── bootstrap-theme.min.css
│?? └── bootstrap-theme.min.css.map
├── fonts
│?? ├── glyphicons-halflings-regular.eot
│?? ├── glyphicons-halflings-regular.svg
│?? ├── glyphicons-halflings-regular.ttf
│?? ├── glyphicons-halflings-regular.woff
│?? └── glyphicons-halflings-regular.woff2
└── js
├── bootstrap.js
├── bootstrap.min.js
└── npm.js
基本演示模板
#1.bootstrap入门.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<!-- 注释掉的是网络引用 本次使用本地引用 -->
<!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> -->
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<h1>你好,Boostrap!</h1>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<!-- <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> -->
<script src="./jquery-3.4.1.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
<script src="./bootstrap/js/bootstrap.min.js"></script>
</body>
</html>
页面显示

全局CSS
Bootstrap中提供了很多类样式方便编写页面。
1,容器类样式
.container 类用于固定宽度并支持响应式布局的容器。
示例
#1.bootstarp入门.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<!-- 注释掉的是网络引用 本次使用本地引用 -->
<!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> -->
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container"><h1>你好,Boostrap!</h1></div>
<h1>你好,Boostrap!</h1>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<!-- <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> -->
<script src="./jquery-3.4.1.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
<script src="./bootstrap/js/bootstrap.min.js"></script>
</body>
</html>
页面显示

.container-fluid 类用于 100% 宽度,占据全部视窗口(viewport)的容器。
<div class="container-fluid"> </div>
2,按钮类样式
示例
#2.按钮类样式.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<!-- 注释掉的是网络引用 本次使用本地引用 -->
<!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> -->
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<h1>你好,Boostrap!</h1>
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<!-- <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> -->
<script src="./jquery-3.4.1.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
<script src="./bootstrap/js/bootstrap.min.js"></script>
<a class="btn btn-default" href="#" role="button">(默认样式)Default</a>
<button class="btn btn-primary" type="submit">(首选项)Primary</button>
<input class="btn btn-success" type="button" value="(成功)Success">
<input class="btn btn-info" type="submit" value="(一般信息)Info">
<button class="btn btn-warning" type="submit">(警告)Warning</button>
<button class="btn btn-danger" type="submit">(危险)Danger</button>
<button class="btn btn-link" type="submit">(链接)Link</button>
</body>
</html>
页面显示

3,表格类样式
- .table
- 为任意 <table> 标签添加 .table 类可以为其赋予基本的样式 — 少量的内补(padding)和水平方向的分隔线
- .table-striped
- 通过 .table-striped 类可以给 <tbody> 之内的每一行增加斑马条纹样式。
- .table-bordered
- 添加 .table-bordered 类为表格和其中的每个单元格增加边框。
- .table-hover
- 通过添加 .table-hover 类可以让 <tbody> 中的每一行对鼠标悬停状态作出响应。
表格类样式示例
#表格类样式.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<script src="./jquery-3.4.1.js"></script>
<script src="./bootstrap/js/bootstrap.min.js"></script>
<!-- 不使用bootstrap -->
<table border="1">
<tr >
<td >hostname</td>
<td>ip</td>
<td >type</td>
<td >status</td>
</tr>
<tr>
<td >server1</td>
<td>192.168.1.1</td>
<td >web</td>
<td >online</td>
</tr>
<tr>
<td >server1</td>
<td>192.168.1.1</td>
<td >web</td>
<td >online</td>
</tr>
</table>
<!-- 使用bootstarp修饰的表格 -->
<!-- table-striped斑马条纹样式
table-bordered加边框 -->
<table class='table table-striped table-bordered'>
<tr >
<td >hostname</td>
<td>ip</td>
<td >type</td>
<td >status</td>
</tr>
<tr>
<td >server1</td>
<td>192.168.1.1</td>
<td >web</td>
<td >online</td>
</tr>
<tr>
<td >server1</td>
<td>192.168.1.1</td>
<td >web</td>
<td >online</td>
</tr>
</table>
</body>
</html>
页面显示

4,表单
单独的表单控件会被自动赋予一些全局样式。所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列。
表单样式示例
#表单样式.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>表格类样式</title>
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
form{
20%;
}
</style>
</head>
<body>
<!-- 未使用bootstarp -->
<form action="" method="">
用户名:<input type="text" name="username" size="20" maxlength="5"/> <br/>
<!-- 和文本是一致的不过是输入时隐藏 -->
密码:<input type="password" name="password"/> <br/>
性别:<input type="radio" name="sex" value="2" checked/> 保密 <input type="radio" name="sex" value="0" id="male"/> <label for="male">男</label> <input type="radio" name="sex" value="1" /> 女 <br/>
爱好:<input type="checkbox" name="hobby" checked/> 吃饭 <input type="checkbox" name="hobby" checked/> 睡觉 <input type="checkbox" name="hobby"/> 打豆豆 <br/>
学历:<select name="" id="">
<option value="0">==请选择==</option>
<option value="1">初中</option>
<option value="2">高中</option>
<option value="3">专科</option>
<option value="4">本科</option>
<option value="5">硕士</option>
</select> <br/>
自我介绍:<br/>
<textarea name="" id="" cols="30" rows="10"></textarea><br/>
<input type="submit" value="注册" /> <input type="reset" value="重置">
</form>
<!-- 使用bootstrap -->
<form action="" method="">
<div class="form-group">
用户名:<input type="text" name="username" class='form-control'/>
</div>
<div class="form-group">
密码:<input type="password" name="password" class='form-control'/>
</div>
<div class="form-group">
性别:<input type="radio" name="sex" value="2" checked/> 保密 <input type="radio" name="sex" value="0" id="male"/> <label for="male">男</label> <input type="radio" name="sex" value="1" /> 女
</div>
<div class="form-group ">
爱好:<input type="checkbox" name="hobby" checked/> 吃饭 <input type="checkbox" name="hobby" checked/> 睡觉 <input type="checkbox" name="hobby"/> 打豆豆
</div>
<div class="form-group ">
学历:<select name="" id="">
<option value="0">==请选择==</option>
<option value="1">初中</option>
<option value="2">高中</option>
<option value="3">专科</option>
<option value="4">本科</option>
<option value="5">硕士</option>
</select>
</div>
<div class="form-group">
自我介绍:
</div>
<div class="form-group">
<textarea name="" id="" cols="30" rows="5" class="form-control"></textarea>
</div>
<div class="form-group">
<input type="submit" value="注册" /> <input type="reset" value="重置">
</div>
</form>
</body>
</html>
页面显示

5,分页
示例
#分页.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>分页</title>
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<script src="./jquery-3.4.1.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
<script src="./bootstrap/js/bootstrap.min.js"></script>
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li>
</body>
</html>
页面显示

Bootstrap插件
交互的效果要通过 JavaScript 来实现,Bootstrap 的插件在使用前,需要先引用两个 js 文件。
<script src="./jquery-3.4.1.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
<script src="./bootstrap/js/bootstrap.min.js"></script>
1,模态框
第一步获取官方模板
<!-- 官方模态框模板 -->
<div id="myModal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<!-- 此处是在模态框中显示的内容 -->
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
第二步 点击按钮弹出模态框
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
完整代码
#模态框.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>bootstart插件</title>
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<script src="./jquery-3.4.1.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
<script src="./bootstrap/js/bootstrap.min.js"></script>
<!-- 官方模态框模板 -->
<div id="myModal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<!-- 此处是在模态框中显示的内容 -->
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
</body>
</html>
页面显示

第三步 隐藏模态框
Close可以关闭模态框 ,也可以使用按钮隐藏 例如把Save changes设置为隐藏模态框
在<body></body>添加以下代码
<script>
// 点击Save changes(id为savebtn)隐藏模态框(id为myModal)
$('#savebtn').click(function(){
$('#myModal').modal('hide')
})
</script>
3,基于bootstarp的案例
官方案例模板:
https://v3.bootcss.com/getting-started/#examples-framework
案例:快速实现一个资产管理,主机列表的页面
使用examples案例中的dashboard页面
第一步 使用模板页面
第二步 根据需要修改对应html标签
#8.主机列表.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="./favicon.ico">
<title>CMDB管理平台</title>
<!-- Bootstrap core CSS -->
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<!-- <link href="./bcss/ie10-viewport-bug-workaround.css" rel="stylesheet"> -->
<!-- Custom styles for this template -->
<link href="./dashboard.css" rel="stylesheet">
<link href="./layer.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">CMDB管理平台系统</a>
</nav>
<div class="container-fluid">
<div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<li class="active"><a href="#">主机列表 <span class="sr-only">(current)</span></a></li>
<li><a href="#">用户列表</a></li>
<!-- <li><a href="#">Analytics</a></li>
<li><a href="#">Export</a></li> -->
</ul>
<!-- <ul class="nav nav-sidebar">
<li><a href="">Nav item</a></li>
<li><a href="">Nav item again</a></li>
<li><a href="">One more nav</a></li>
<li><a href="">Another nav item</a></li>
<li><a href="">More navigation</a></li>
</ul>
<ul class="nav nav-sidebar">
<li><a href="">Nav item again</a></li>
<li><a href="">One more nav</a></li>
<li><a href="">Another nav item</a></li>
</ul> -->
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
<h1 class="page-header">主机列表</h1>
<a class="btn btn-info btn-lg" data-toggle="modal" data-target="#mybox">添加主机</a>
<!-- <div class="row placeholders">
<div class="col-xs-6 col-sm-3 placeholder">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="200" height="200" class="img-responsive" alt="Generic placeholder thumbnail">
<h4>Label</h4>
<span class="text-muted">Something else</span>
</div>
<div class="col-xs-6 col-sm-3 placeholder">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="200" height="200" class="img-responsive" alt="Generic placeholder thumbnail">
<h4>Label</h4>
<span class="text-muted">Something else</span>
</div>
<div class="col-xs-6 col-sm-3 placeholder">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="200" height="200" class="img-responsive" alt="Generic placeholder thumbnail">
<h4>Label</h4>
<span class="text-muted">Something else</span>
</div>
<div class="col-xs-6 col-sm-3 placeholder">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="200" height="200" class="img-responsive" alt="Generic placeholder thumbnail">
<h4>Label</h4>
<span class="text-muted">Something else</span>
</div>
</div> -->
<!-- <h2 class="sub-header">Section title</h2> -->
<table class="table table-striped table-hover">
<tr >
<th>ID</th>
<th >hostname</th>
<th>ip</th>
<th >type</th>
<th >status</th>
<th>操作</th>
</tr>
<tr>
<td>1</td>
<td >server1</td>
<td>192.168.1.1</td>
<td >web</td>
<td >online</td>
<td><a class="btn btn-success btn-sm">修改</a><a class="btn btn-danger btn-sm">删除</a></td>
</tr>
<tr>
<td>2</td>
<td >server1</td>
<td>192.168.1.1</td>
<td >web</td>
<td >online</td>
<td><a class="btn btn-success btn-sm">修改</a><a class="btn btn-danger btn-sm">删除</a></td>
</tr>
</table>
</div>
</div>
</div>
<div class="modal fade" id="mybox" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">×</span></button>
<h1 class="modal-title" id="myModalLabel">主机添加</h1>
</div>
<div class="modal-body">
<form action="" method="">
<div class="form-group">
主机名称<input type="text" name="username" class="form-control" size="100" id="hostname" />
</div>
<div class="form-group">
IP: <input type="text" name="ip" class="form-control" />
</div>
<div class="form-group">
主机类型:<select name="type" id="" class="form-control">
<option value="0">===请选择===</option>
<option value="1">db</option>
<option value="2" selected>web</option>
<option value="3">redis</option>
<option value="4">mongodb</option>
<option value="5">tomcat</option>
</select>
</div>
<div class="form-group">
主机状态:<select name="status" id="" class="form-control">
<option value="0">===请选择===</option>
<option value="1">在线</option>
<option value="2" selected>下载</option>
</select>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="savebtn">保存</button>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="./jquery-3.4.1.js"></script>
<script src="./bootstrap/js/bootstrap.min.js"></script>
<script src="./layer/layer.js"></script>
</body>
</html>
页面显示

实现模拟删除主机
方法一 删除无需确认
在标签<body>内添加以下代码
<!-- 删除无确认 -->
<script>
$('.btn-danger').each(function(index,item){
$(item).click(function(){
$(item).parents('tr').hide();
});
});
</script>
页面点击删除立即删除

方法二 使用confirm确认删除
<!-- 删除需要确认 -->
<script>
$('.btn-danger').each(function(index,item){
$(item).click(function(){
if(confirm('真的要删除吗?')){
$(item).parents('tr').hide();
}
});
});
</script>
页面显示

方法三 使用layer插件
需要加载layer插件 官方文档地址:https://layer.layui.com/
加载layer前需要加载jQuery插件
在<body>内加载
<script src="./jquery-3.4.1.js"></script>
<script src="./bootstrap/js/bootstrap.min.js"></script>
<script src="./layer/layer.js"></script>
使用layer插件确认删除
<script>
$('.btn-danger').each(function (index, item) {
$(item).click(function () {
layer.confirm('真的要删除吗?', {
btn: ['是的', '不是'] //按钮
}, function () {
// 点击第一个按钮
$(item).parents('tr').hide();
layer.msg('删除成功', { icon: 1 });
}, function () {
// 点击第二个按钮
layer.msg('删除失败', {
time: 20000, //20s后自动关闭
btn: ['明白了', '知道了']
});
});
});
});
</script>
页面显示




四,Ajax
1,Ajax介绍
Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML)
创建交互式网页应用的网页开发的一组技术。
作用:异步发送请求,提升了用户体验。
2,使用jquery发送Ajax
2.1发送get请求
$.ajax({
type: 'get',
url: 'xxxxx',
success: function (res) {
}
})
2.2发送post请求
$.post('/path/to/file', {param1: 'value1'}, function(data, textStatus, xhr) {
/*optional stuff to do after success */
});
2.3Ajax方法
$.ajax({
type: 'post',
url: 'xxxxx',
data: data,
success: function (res) {
}
});
3,实现聊天机器人
API:http://www.tuling123.com/openapi/api
请求方法:POST
请求参数:key=d7c82ebd8b304abeacc73b366e42b9ed&info=你好
|
参数名称 |
参数值 |
|
key |
请求权限标识符 |
|
info |
关键字参数 |
聊天机器人示例
#9聊天机器人.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>聊天机器人</title>
</head>
<body>
<script src="./jquery-3.4.1.js"></script>
<script>
var data = {key:'d7c82ebd8b304abeacc73b366e42b9ed',info:'你好'}
$.post("http://www.tuling123.com/openapi/api",data,
function(data,textStatys,jqXHR){
console.log(data);
}
)
</script>
</body>
</html>

4,操作主机列表页面
4.1接口服务器搭建
使用json-server启动一个接口服务器,借助node进行开发的。安装node系统环境。

安装json-server
npm install -g json-server
编写json文件
#db.json
{
"hosts": [
{
"id": 2,
"hostname": "server02",
"ip": "192.168.17.101",
"type": "db",
"status": "up"
},
{
"id": 3,
"hostname": "server03",
"ip": "192.168.17.103",
"type": "web",
"status": "up"
}
]
}
启动
json-server --watch jb.json

web页面查看

4.2动态获取主机列表
#主机列表简单版.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>主机列表简单版</title>
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<table class="table table-striped table-hover">
<tr >
<th>ID</th>
<th>hostname</th>
<th>ip</th>
<th>type</th>
<th>status</th>
<th>操作</th>
</table>
<script src="./jquery-3.4.1.js"></script>
<script src="./bootstrap/js/bootstrap.min.js"></script>
<script>
var str = '';
$.ajax({
type: "get",
url: "http://localhost:3000/hosts",
data: "",
dataType: "json",
success: function (res) {
// 打印res是一个元素
console.log(typeof(res));
// 遍历元素拼接成一个字符串,字符串即对应的表格tabel
for (var index = 0; index < res.length; index++) {
str += '<tr><td>'+res[index].id+'</td><td>'+res[index].hostname+'</td><td>'+res[index].ip+'</td><td>'+res[index].type+'</td><td>'+res[index].status+'</td><td><a class="btn btn-success btn-sm">修改</a><a class="btn btn-danger btn-sm">删除</a></td></tr>';
}
// 打印拼接的字符串
console.log(str);
// 把拼接的字符串最佳到表格内 即增加了几行主机
$('tbody').append(str);
}
});
</script>
</body>
</html>
页面显示
