Ajax简介和实例

目录

什么是 AJAX ? 

AJAX实例 

ajax-get无参

 ajax-get有参

对象和查询字符串的互转

ajax-post

 ajax-post 表单


AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

什么是 AJAX ? 

菜鸟教程是这样介绍的:

AJAX = 异步 JavaScript 和 XML。

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

AJAX实例 

从前面的学习,我们可以知道get和post的区别,详情见前端学习之HTTP协议的介绍(5)_学前端的狗头苏丹的博客-CSDN博客

ajax-get无参

<!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.0"><title>Document</title><script>// 1.创建一个请求实例var xhr = new XMLHttpRequest();// 2.打开一个链接 open('get/post','URL')xhr.open('get','http://121.199.0.35:8888/index/carousel/findAll');// 3.发送请求 get携带参数在地址栏 post携带参数在请求体xhr.send();// 4.监听状态改变 接收响应 onreadystatechange// readyState 4 响应完成// 0 open未调用 1 open已经调用 2 接收响应头信息 3 接收响应体信息 4 响应完成// status 200 响应成功xhr.onreadystatechange = function(){// 表示响应完成  表示响应成功if(xhr.readyState === 4 && xhr.status === 200){console.log(xhr.response,'接收响应体');var res = JSON.parse(xhr.response);console.log(res);res.data.forEach(function(item){var div = document.createElement('div');var img = document.createElement('img');div.innerHTML = item.name + ' ' +item.introduce;img.src = item.url;img.style.width = '400px';document.body.appendChild(div);document.body.appendChild(img);})}}</script>
</head>
<body></body>
</html>

 ajax-get有参

利用Qs.stringify() 将对象序列化成URL形式进行拼接,需要引入

<!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.0"><title>Document</title><script src="https://cdn.bootcdn.net/ajax/libs/qs/6.11.1/qs.js"></script><script>window.onload = function(){/*** get请求带参数 分页查询 一页查询11条数据 page1 pageSize 11*/// 1.创建一个XMLHttpRequest请求实例var xhr = new XMLHttpRequest();var params = {page:1,pageSize:10}// 将对象转为查询字符串 将对象 序列化成URL的形式,以&进行拼接  Qs.styingify()var paramsString = Qs.stringify(params);console.log(paramsString);// ?page=1&pageSize=11 查询字符串// 2.打开一个链接xhr.open('get','http://121.199.0.35:8888/index/article/pageQuery'+'?'+paramsString);// 3.发送请求xhr.send();// 4.监听状态改变 接收响应xhr.onreadystatechange = function(){if(xhr.readyState === 4 && xhr.status === 200){var response = JSON.parse(xhr.response);console.log(response);var dl = document.createElement('dl');response.data.list.forEach(function(item){var dt = document.createElement('dt'); var dd = document.createElement('dd');dt.innerHTML = item.title;dd.innerHTML = item.content;dl.appendChild(dt);dl.appendChild(dd);document.body.appendChild(dl);})}}}</script>
</head>
<body></body>
</html>

 

对象和查询字符串的互转

假如不使用Qs的方法,将该怎么转换呢?

<!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.0"><title>Document</title><script>var obj = {name:'terry',age:12,title:'标题'}// 转成查询字符串 ?name=terry&age=12&title=标题function queryString(obj){var str = '';for(let key in obj){// key 属性名 obj[key]属性值 str += '&'+key+ '=' + obj[key]}str = str.replace('&','?');return str;}var res= queryString(obj);// res ?name=terry&age=12&title=标题   将查询字符串转为对象function parse(res){var obj = {};res.split('&').forEach(function(item){if(item.includes('?')){item = item.slice(1);}// console.log(item);     ["?name=terry","age=12","title=标题"]let newArr = item.split('=');// console.log(newArr);   [name,terry] [age,12] [title,标题]obj[newArr[0]] = newArr[1];})return obj;}console.log(parse(res));</script>
</head>
<body></body>
</html>

ajax-post

<!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.0"><title>Document</title><script>// 1.创建一个请求实例var xhr = new XMLHttpRequest();// 2.打开链接var obj = {username:'admin1',password:123321}xhr.open('post','http://121.199.0.35:8888/user/login');// 2.2 设置请求头为json格式 setRequestHeader /*** 1.Content-Type application/json 设置json格式* 2.Content-Type application/x-www-form-urlencoded 设置为表单格式 需要URL转码 用Qs.stringify()* 3.Content-Type text/plain;charset=UTF-8 默认值*/xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8');// 3.发送请求xhr.send(JSON.stringify(obj));// 4.监听状态改变 接收响应xhr.onreadystatechange = function(){if(xhr.readyState ===4 && xhr.status === 200){console.log(JSON.parse(xhr.response));}}</script>
</head>
<body></body>
</html>

 ajax-post 表单

需要使用Qs.stringify()将表单转换为URL形式

<!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.0"><title>Document</title><script src="https://cdn.bootcdn.net/ajax/libs/qs/6.11.1/qs.js"></script><script>// 1.创建一个请求实例var xhr = new XMLHttpRequest();// 2.打开一个链接xhr.open('post','http://121.199.0.35:8888/baseUser/saveOrUpdate');var obj = {username:'杰米',password:'123456',telephone:'15921315421'}// 2.2设置请求头的格式xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=UTF-8')// 3.发送请求xhr.send(Qs.stringify(obj));// 4.监听状态改变 接收响应xhr.onreadystatechange = function(){if(xhr.readyState ===4 && xhr.status === 200){console.log(JSON.parse(xhr.response));}}</script>
</head>
<body></body>
</html>

 

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

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

相关文章

使用TypeScript实现贪吃蛇小游戏(网页版)

本项目使用webpackts所编写 下边是项目的文件目录 /src下边的index.html页面是入口文件 index.ts是引入所有的ts文件 /modules文件夹是用来存放所有类的 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

SpringCloud:微服务技术

一、认识微服务&#xff1a; 首先&#xff0c;微服务架构不等于SpringCloud&#xff0c;微服务架构是一种经过良好架构设计的分布式架构方案&#xff0c; &#xff0c;它将应用构建成一系列按业务领域划分模块的&#xff0c;小的自治服务&#xff0c;并解决服务拆分所产生的各种…

【网络】TCP协议详解

目录 TCP协议格式 感性理解TCP报头 认识报头中的字段 序号和确认序号 4位首部长度 窗口大小 标记位 确认应答机制 超时重传机制 TCP协议格式 感性理解TCP报头 linux内核是用C语言写的&#xff0c;所以报头实际上就是一种结构化的数据对象&#xff0c;用伪代码可表示为…

UNI-APP_subNVue原生子窗口使用,web-view层级问题解决

subNVues文档 app-subnvues文档 subNVues开发指南 需求&#xff1a;在pages/cloud_control/index页面使用subNVue原生子窗口 1.pages文件配置 "app-plus": {"bounce": "none","subNVues":[{"id": "control_popup&qu…

Chapter 3: Conditional | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介Chapter 3: Conditional executionBoolean expressionsLogical operatorsConditional executionAlternative executionChained conditionalsNested conditionalsCatching exceptions using try and exceptShort-circuit evaluation of lo…

idea 启动项目 java: Compilation failed: internal java compiler error

1. 首先查看 项目的 编译的 JDK 版本是否是 匹配了或匹配的 2. 堆分配的内存不足导致&#xff0c;如下图位置 堆 构建程序的 堆大小调大

【JavaWeb】了解JavaScript DOM API

目录 1、什么是DOM 1.1、DOM树 1.2、 了解事件 2、常用的DOM API 2.1、选中页面元素 2.2、获取/修改元素内容 2.2.1、innerHTML和innerText 2.2、获取/修改元素属性 2.3、获取/修改表单元素属性 3、JQuery框架的简单了解和使用 4、代码案例&#xff1a;实现聚合索引功…

Ruoyi单体项目与Echarts4.2.1地图集成时的思路及解决办法

目录 背景 一、相关数据 1、湖南省2021全省地区生产总值 2、湖南Geojson数据 二、Ruoyi集成设计与实现 1、自定义地图注册 2、湖南地图引用 3、图表初始化及数据绑定 4、实际效果 总结 背景 在之前博客中&#xff0c;介绍了Echarts和Ruoyi集成的一些博客基于Echarts2.X的…

味尚食品 味尚拉面半干面是一种非常经典的中式面食

尊敬的客户&#xff0c;您好&#xff01;感谢您对我们电商平台的关注&#xff0c;我们很高兴为您介绍我们平台上的一款热销产品——味尚拉面半干面。 味尚拉面半干面是一种非常经典的中式面食&#xff0c;其主要特点体现在面条的口感和味道方面&#xff0c;让人感觉仿佛在享受正…

密码学学习笔记(八):Public-Key Encryption - 公钥加密1

简介 公钥加密也被称为非对称加密。下面是一个例子&#xff1a; Bob生成一个密钥对&#xff0c;发布他的公钥&#x1d443;&#x1d43e;&#x1d435;, 保管密钥&#x1d446;&#x1d43e;&#x1d435; 私有的Alice使用&#x1d443;&#x1d43e;&#x1d435; 加密明文M…

Windows系统中将markdown文件批量转化为PDF

需要将一个文件夹下的多个md文件转化为PDF 下载安装pandoc 官网下载地址&#xff1a;Pandoc &#xff0c;下载位置如下图。 下载后按照默认文件路径安装完成 使用everything软件查找pandoc.exe文件路径&#xff0c;如下图&#xff1a; 安装完成之后就可以在cmd窗口或Window…

深度学习技巧应用22-构建万能数据生成类的技巧,适用于CNN,RNN,GNN模型的调试与训练贯通

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下深度学习技巧应用22-构建万能数据生成类的技巧&#xff0c;适用于CNN,RNN,GNN模型的调试与训练贯通。本文将实现了一个万能数据生成类的编写&#xff0c;并使用PyTorch框架训练CNN、RNN和GNN模型。 目录&#xff1…