Ajax — 第一天

上网的目的

本质目的:浏览和消费资源

  • 资源:文字、图片、音频、视频…
  • 资源存在哪里:服务器上

服务器的概念

是负责存放和对外提供资源的电脑。它的性能比普通的计算机好太多了

客户端

获取和消费资源的电脑,叫做客户端。

我们上网的时候,一般都是用浏览器,所以我们可以称浏览器为客户端软件。

URL

什么是URL?URL是统一资源定位符。

  • 一个正确的url,对应着服务器上唯一的的一个资源。绝对不会重复。

URL的组成:

  • 协议:http https
  • 服务器名称 www.baidu.com
  • 文件在服务器上的存放位置 /liulongbinblogs/p/1132423.html

访问网络资源的步骤

  1. 客户端发送请求
  2. 服务端处理这次请求
  3. 服务器做出响应

需要记住的单词

  • request - 请求
  • response - 响应
  • data - 数据
    • method - 方式、方法
    • status - 状态
    • code - 码
    • headers - 头

网页中的资源

  • HTML – 是网页的骨架
  • CSS – 是网页的颜值
  • JS – 是网页的行为
  • 数据(Data) – 是网页的灵魂

请求资源的两种方式

向服务器发送请求的时候,可以使用很多种请求方式,最常用的请求方式是GET和POST。

  • GET - 一般用于获取服务器上的资源
  • POST - 一般用于向服务器提交数据

了解Ajax

  • 什么是ajax
    • asynchronous javascript and xml
    • 通过浏览器内置对象 XMLHttpRequest 来发送请求、接收响应结果的技术
    • 发送请求并接收响应结果,可以使用 交互 来表达
  • 为什么要学习Ajax
    • 有了ajax,就可以向服务器发送请求,获取数据
    • 目前,对于前端来说,ajax是必备技能。

ajax的应用场景

  • ajax分页
  • 无刷新的用户名验证(验证用户名是否已被占用)
  • 数据的增删改查
  • 百度地图
  • etc…

jQuery中的$.get() 方法

不带请求参数的查询:

// 演示$.get方法的使用
/*
$.get(url, [data], [callback], [dataType]);- url 必填,请求的服务器资源的url- data 可选,对象类型,表示发送请求时需要携带的参数- callback,可选,function类型。请求响应成功之后,这个函数会被调用。作用是获取服务器响应的结果- dataType, 可选,字符串类型。表示预期服务器返回数据的类型
*/$.get('http://www.liulongbin.top:3006/api/getbooks', function (res) {// res 是jQuery封装好的,它表示服务器返回的数据// console.log(res);
});

带请求参数的查询:

// $.get(url, [data], [callback], [dataType]);// data 表示请求参数。是一个对象// - 请求参数可以更加明确的告诉服务器,客户端需要的资源$.get('http://www.liulongbin.top:3006/api/getbooks', {id: 3}, function (res) {console.log(res);
});

jQuery中的$.post方法

// post方式,一般用于提交数据给服务器
// 比如添加一本书籍(提交书名、作者、出版社给服务器)// 演示添加一本书
let data = {bookname: '水浒传',   // 书的名字必须是 booknameauthor: '施耐庵',     // 作者必须是 authorpublisher: '大宋出版社'  // 出版社必须是 publisher
};
$.post('http://www.liulongbin.top:3006/api/addbook', data, function (res) {// res 表示服务器返回的结果// console.log(res);
});

注意点:

  • url都是固定的,每个url必须使用对应的请求方式才可以。
  • 获取书籍时,请求参数 id也是固定的。
  • 添加书籍时,作者、书名、出版社都是必填的,而且名字都是固定的

jQuery中的$.ajax方法

$.ajax() 方法,是一个比较综合的方法,不但可以发送GET和POST方式的请求,还可以对请求做更详细的配置(后续慢慢介绍)。

// 语法
$.ajax({type: '',  // 请求方式url: '',   // 请求的url地址data: {},  // 请求参数success: function (res) {  // 请求响应整个过程成功了,触发的函数// res 表示服务器返回的结果}
});

接口

  • 概念
    • ajax请求时,使用的url地址。叫做数据接口,简称接口
  • 说明
    • 接口是由后端同学设计的(后面的node课程会讲)
    • 每个接口都有对应的请求方式

接口文档

  • 后端同学,当它设计完接口之后,会给我们前端同学提供一个接口文档
  • 前端同学,调用接口的时候,就严格按照接口文档来写代码

接口文档的组成部分:

  • 接口名称:通过接口名称可以了解接口的作用
  • url地址:
  • 请求方式:
  • 请求参数:
  • 响应数据格式:
  • 响应数据示例:

接口测试工具 - postman

下载网址:

GET方式的测试

在这里插入图片描述

POST方式的测试

在这里插入图片描述

图书管理案例

准备工作

将HTML文件,包括使用到的css和js,复制到今天的代码文件夹中。

在static.html中,写自己的代码。

获取并展示书籍

  1. 封装一个函数 getBooks
  2. 函数内部,发送ajax请求,获取书籍
  3. 把数据渲染到页面中
// ------------------- 获取并展示书籍 -----------------------
getBooks();function getBooks () {// 获取并展示书籍信息// 1. 按照接口文档,发送ajax请求,获取书籍数据$.get('http://www.liulongbin.top:3006/api/getbooks', function (res) {console.log(res);if (res.status === 200) {// 数据获取成功// 2. 展示(渲染)书籍数据let str = '';// 2.1 循环 res.data 。循环的过程中,拼接trres.data.forEach(item => {str += `<tr><td>${item.id}</td><td>${item.bookname}</td><td>${item.author}</td><td>${item.publisher}</td><td><a href="javascript:;">删除</a>  </td></tr>`;});// 2.2 循环之后,得到了82个tr.把所有的tr放到tbody标签里面$('#tb').html(str);}});
}

删除书籍

  • 给删除超链接加 自定义属性 data-id="${item.id}" ,加类名 class="delete"
  • 事件委托的方案,给删除超链接注册单击事件
  • 询问是否要删除
  • 获取id
  • 根据接口文档,发送ajax请求,完成删除
  • 删除成功,调用 getBooks,从新渲染数据
// ------------------  删除书籍 ------------------------// 1. 注册单击事件$('body').on('click', '.delete', function () {// 2. 询问是否要删除// let x = confirm('你确定要删除吗?你好狠!');// console.log(x); // 如果用户点了取消,confirm返回false;用户点击了确定,confirm返回trueif (!confirm('你确定要删除吗?你好狠!')) {// 用户点击了取消,阻止代码向后执行return;}// 3. 根据接口文档,发送ajax请求。从而完成删除// 获取当前书籍的idlet id = $(this).attr('data-id'); // 123// console.log(id);// return;$.ajax({type: 'GET',url: 'http://www.liulongbin.top:3006/api/delbook',data: {id: id},success: function (res) {// 无论成功还是失败,反正都要提示,干脆,不用判断,直接提示alert(res.msg);// 4. 删除成功,让被删除的这行消失if (res.status === 200) {// 调用getBooks函数,让数据从新渲染一下即可getBooks();}}}); });

添加书籍

  • 给添加按钮注册单击事件
  • 获取输入框的值(三个值)
  • 判断每个值都不能为空
  • 根据接口文档,发送ajax请求。完成添加
  • 添加成功,调用 getBooks() ,从新渲染数据
// ------------------  添加书籍 ------------------------// 1. 给添加按钮注册单击事件$('#btnAdd').on('click', function () {// 2. 获取输入框的值(三个值 书名、作者、出版社)let bookname = $('#iptBookname').val().trim();let author = $('#iptAuthor').val().trim();let publisher = $('#iptPublisher').val().trim();// 3. 判断,三个值不能是空if (bookname == '' || author == '' || publisher == '') {alert('参数不能为空');return;}// 4. 根据接口文档,发送ajax请求。完成添加$.post('http://www.liulongbin.top:3006/api/addbook', {bookname: bookname, author: author, publisher: publisher}, function (res) {alert(res.msg);// 5. 添加成功之后,从新渲染if (res.status === 201) {getBooks();}});});

自行修改(全已 $.ajax 的形式进行表达)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Swift傻傻分不清楚系列(四)基本运算符 o_O!???

本页包含内容&#xff1a; 术语赋值运算符算术运算符组合赋值运算符比较运算符三目运算符空合运算符区间运算符逻辑运算符 运算符是检查、改变、合并值的特殊符号或短语。例如&#xff0c;加号&#xff08;&#xff09;将两个数相加&#xff08;如 let i 1 2&#xff09;。更…

网络经济与企业管理(第 2 章:企业战略管理)

一、战略的性质与类型 什么是战略&#xff1a;企业发展的谋划 企业战略的三个层次&#xff1a; 企业总体战略&#xff1a;又称经营战略&#xff0c;是企业整体运营的指导思想事业层战略&#xff1a;又称竞争战略、业务层次战略、SBU战略&#xff0c; 指导具体战略经营单位。职能…

Ajax — 图书管理

注意&#xff1a;本项目基于 jQuery 文件下进行的 Ajax 请求项目&#xff0c;需要映入jQuery文件&#xff01; <body style"padding: 15px;"><!-- 添加图书的Panel面板 --><div class"panel panel-primary"><div class"panel-h…

错误: 找不到或无法加载主类 com.leyou.LeyouItemApplication Process finished with exit code 1...

在IDEA的使用过程中&#xff0c;经常断掉服务或者重启服务&#xff0c;最近断掉服务重启时突然遇到了一个启动报错&#xff1a; 错误&#xff1a;找不到或无法加载主类 猜测&#xff1a;1&#xff0c;未能成功编译&#xff1b; 尝试&#xff1a;菜单---》Build---》Rebuild Pro…

Ajax — 第二天

Ajax-02 今天内容&#xff1a; 安装浏览器插件 聊天机器人案例 Form表单提交 模板引擎&#xff08;新的概念&#xff0c;难点&#xff09; 两个案例 Chrome浏览器插件安装 安装步骤 下载插件的网站&#xff1a; https://www.gugeapps.net/ 无需扫码 http://www.cnplu…

Ajax — 评论列表

<body style"padding: 15px;"><!-- 评论面板 --><div class"panel panel-primary"><div class"panel-heading"><h3 class"panel-title">发表评论</h3></div><form class"panel-bod…

Swift傻傻分不清楚系列(七)控制流

本页包含内容&#xff1a; For-In 循环While 循环条件语句控制转移语句&#xff08;Control Transfer Statements&#xff09;提前退出检测 API 可用性 Swift提供了多种流程控制结构&#xff0c;包括可以多次执行任务的while循环&#xff0c;基于特定条件选择执行不同代码分支…

java课程之团队开发冲刺1.8

一.总结昨天进度 1.初步实现用户交互 增删课程表 二.遇到的困难 1.主界面一段程序一直报错 三.今天的任务 1.解决报错问题&#xff0c; 编写查询空教室功能 照片 燃尽图 转载于:https://www.cnblogs.com/qfsr/p/10873636.html

Ajax — 聊天机器人演示

<body><div class"wrap"><!-- 头部 Header 区域 --><div class"header"><h3>小思同学</h3><img src"img/person01.png" alt"icon" /></div><!-- 中间 聊天内容区域 --><div…

Ajax — 第三天

Ajax-03 模板引擎原理 正则回顾 区分正则方法和字符串方法 正则方法 test()exec() 字符串方法 match()replace()split()search() 正则方法由正则表达式调用&#xff1b;字符串方法由字符串调用&#xff1b; exec方法 功能&#xff1a;使用正则表达式匹配字符串&#xff0c…

d3.js 共享交换平台demo

今天在群里遇到一张图 遂来玩一玩&#xff0c;先来上图!! 点击相应按钮&#xff0c;开关线路&#xff0c;此项目的重点是计算相应图形的位置&#xff0c;由于是个性化项目就没有封装布局。好了直接上代码。 <!DOCTYPE html> <html lang"en"> <head&g…

Java知识系统回顾整理01基础05控制流程07结束外部循环

一、break是结束当前循环 二、结束当前循环实例 break; 只能结束当前循环 public class HelloWorld { public static void main(String[] args) { //打印单数 for (int i 0; i < 10; i) { for (int j 0; j < 1…

Ajax — 新闻列表

注意&#xff1a;本项目主要利用到了template&#xff0c;模板引擎进行编写 模板引擎代码下载地址 <div id"news-list"><!-- 这里放数据 --></div>.news-item {display: flex;border: 1px solid #eee;width: 700px;padding: 10px;margin-bottom: …

Ajax — 第四天

数据交换格式 XML 写法&#xff1a; 一个文档有且只有一个根标签标签必须闭合属性值必须加引号 如果说服务器返回的数据是xml格式的 前端需要把服务器返回的xml当做document对象来处理目前无法演示&#xff0c;自己写接口的时候&#xff0c;我们可以测试一下。 JSON 写法…

数据库系统原理(第三章数据库设计 )

一、数据库设计概述 数据库的生命周期 数据库设计的目标&#xff1a; 满足应用功能需求&#xff08;存、取、删、改&#xff09;&#xff0c;良好的数 据库性能&#xff08;数据的高效率存取和空间的节省 共享性、完整性、一致性、安全保密性&#xff09;数据库设计的内容 数据…

Ajax — 第五天

Ajax-05 xhr&#xff08;level-2&#xff09;新特性 responseType属性和response属性 responseType: 表示预期服务器返回的数据的类型 “” &#xff0c;默认空text&#xff0c;和空一样&#xff0c;表示服务器返回的数据是字符串格式json&#xff0c;表示服务器返回的是js…

Swift傻傻分不清楚系列(十)枚举

本页内容包含&#xff1a; 枚举语法&#xff08;Enumeration Syntax&#xff09;使用 Switch 语句匹配枚举值&#xff08;Matching Enumeration Values with a Switch Statement&#xff09;关联值&#xff08;Associated Values&#xff09;原始值&#xff08;Raw Values&…

数据库系统原理(第四章:SQL与关系数据库基本操作 )

一、SQL概述 sql是结构化查询语言&#xff08;Structured Query Language&#xff0c;SQL&#xff09;是专门用来与数 据库通信的语言&#xff0c;它可以帮助用户操作关系数据库。 SQL的特点&#xff1a; SQL不是某个特定数据库供应商专有的语言&#xff1b; SQL简单易学 &…

selenium操作浏览器窗口最大化和刷新

实际测试过程中经常遇到打开一个页面并不是全屏显示&#xff0c;但是却希望它能够全屏显示或者新增一条记录后需要刷新一下看能不能再列表中正常显示。 于是就有了今天的关于对浏览器窗口的最大化和刷新页面。需要说明的一点&#xff1a;所有和python相关的记录都是基于3.6版本…

Git安装步骤+Mac终端配置

Git安装步骤 其实可以直接略过。因为安装的时候&#xff0c;一路 next 即可。 注意&#xff0c;安装路径中不能出现中文。安装完成后&#xff0c;不得更改安装路径。 检查Git是否安装成功 在任何文件夹&#xff0c;空白处&#xff0c;右键。如果看到 “Git Bash Here”&#xf…