ajax写法和json的知识点

article/2025/8/18 15:56:29

1. JQuery方式来实现AJAX

1.1 $.ajax()方式来实现AJAX

语法:$.ajax(url,[settings]);但是我们一般这么写$.ajax({键值对});
$.ajax()来实现ajax的案例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/jquery-3.3.1.min.js"></script><script>//定义方法function  fun() {//使用$.ajax()发送异步请求.这个$.ajax()的参数可以写很多键值对,我们只需要记住一部分就行了,比如url、type、data、success、error、dataType。$.ajax({url:"ajaxServlet" , // 请求资源的路径type:"POST" , //浏览器请求资源的请求方式。默认是get,即,你不指定type的值是什么,默认就是get方式发送的请求。//请求参数。你要携带请求的参数可以用data这个键。data的写法有两种://方式一:要携带多个参数可以用&来连接这几个参数。//data: "username=jack&age=23",//方式二:多个参数可以用逗号隔开。推荐使用方式二这种写法。data:{"username":"jack","age":23},//success这个键后面一定是绑定一个函数的。即,响应成功后会自动执行这个function的语句。success:function (data) {//这个data是一个变量而已,可以名字可以随便取,它可以接收服务器给的响应的结果的值。alert(data);},//记得逗号不要忘记//error这个键后面也是绑定一个函数,即响应失败后会自动执行这个function的语句。error:function () {alert("出错啦...")},dataType:"text"//这个键用了设置预期的接收到服务器那边的数据的类型,即浏览器将会用这个格式来解析服务器那边拿到数据。你要是不指定,那么浏览器会根据http的响应头的MIME值来智能判断它从服务器那边拿到的数据类型然后去解析。//这个dateType可以写的值有这些:xml、html、script、json、jsonp、text。});}</script></head>
<body><input type="button" value="发送异步请求" onclick="fun();"><input>
</body>
</html>

1.2 $.get()方式来实现AJAX

注意:这种方式发送的请求将会以post方式发送。
语法:$.post(url, [data], [callback], [type])

这个语法里面的参数:

  • url:请求路径
  • data:请求参数
  • callback:回调函数
  • type:响应结果的类型

下面是用$.post()方式来实现AJAX的案例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/jquery-3.3.1.min.js"></script><script>//定义方法function  fun() {$.post("ajaxServlet",{username:"rose"},function (data) {alert(data);},"text");}</script>
</head>
<body><input type="button" value="发送异步请求" onclick="fun();"><input>
</body>
</html>

2. json

2.1 注意点

  • json数据是由键值对构成的
    注意:

    1. 键值对中的键可以用引号(单双都行)引起来,也可以不使用引号
    2. 值可以取的哪些类型:
      • 数字(整数或浮点数,这个可以直接写)
      • 字符串(字符串一定要在双引号中)
      • 逻辑值(可以写true 或 false)
      • 数组(要写在方括号中,比如{“persons”:[{……},{……}]})
      • 对象(要写在花括号中,比如{“address”:{“province”:“陕西”…}})
      • null
  • 数据由逗号分隔:多个键值对之间由逗号分隔

  • 花括号保存对象:花括号长这样{}

  • 方括号保存数组:方括号长这样[]

2.2 获取数据

获取数据的格式有下面这几种:

  1. 获取json对象里的某个键的值
    • json对象.键名。注意:这种方式键名不用带引号。
    • json对象[“键名”]。注意:这种方式的键名需要加引号,单引号和双引号都是可以的。
  2. 获取数组对象中的某个元素
    • 数组对象[索引]

2.3 json写法的案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>//1.定义基本格式var person = {"name": "张三", age: 23, 'gender': true};//获取name的值//方式一//var name = person.name;//方式二var name = person["name"];alert(name);//张三//2.嵌套格式//2.1{}嵌套[]var persons = {"persons11": [{"name": "张三", "age": 23, "gender": true},{"name": "李四", "age": 24, "gender": true},{"name": "王五", "age": 25, "gender": false}]};//获取王五var name1 = persons.persons11[2].name;alert(name1);//王五//2.2[]嵌套{}var ps = [{"name": "张三", "age": 23, "gender": true},{"name": "李四", "age": 24, "gender": true},{"name": "王五", "age": 25, "gender": false}];//ps这个变量将会是一个数组。//获取李四值alert(ps[1].name);//李四</script>
</head>
<body></body>
</html>

2.4 json数据遍历的案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>//1.定义基本格式var person = {"name": "张三", age: 23, 'gender': true};var ps = [{"name": "张三", "age": 23, "gender": true},{"name": "李四", "age": 24, "gender": true},{"name": "王五", "age": 25, "gender": false}];//获取person对象中所有的键和值//for-in循环来遍历json对象。for(var key in person){//不一定叫key也可以叫别的,就是变量名而已,这个变量名表示的是键。//alert(key + ":" + person.key);这样写不行,当key为name时,相当于是alert(name + ":" + person."name");这样写。所以我们要像下面这样这句这样写才行。alert(key+":"+person[key]);}//获取ps中的所有值,即遍历数组for (var i = 0; i < ps.length; i++) {var p = ps[i];//拿到ps这个数组里面的每一个json对象for(var key in p){alert(key+":"+p[key]);}}</script>
</head>
<body>
</body>
</html>

3. 使用案例

验证用户名是否存在的案例,比如你注册一个账号,如下面这样,你输入了用户名然后鼠标焦点离开了这个用户名这个文本框,右边就给你显示此用户名是否存在的提示。

在这里插入图片描述

我们通过抓包发现百度的注册页面其实是在你鼠标焦点离开了用户名这个文本输入框,就会让浏览器向服务器发送一个请求(可以根据下面这个截图知道,百度离焦事件是去访问它服务器的regnamesugg这个资源的),然后浏览器会解析这个请求的响应信息,再给用户展示。可以看到响应信息是一个json格式的数据,下面还响应了一个图片,就是右边那个小叉叉。

在这里插入图片描述

代码展示:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>注册页面</title><script src="js/jquery-3.3.1.min.js"></script><script>//在页面加载完成后$(function () {//给username绑定blur事件,即绑定失去焦点的事件$("#username").blur(function () {//获取username文本输入框的值var username = $(this).val();//this指的是那个正在失去焦点的那个元素对象//发送ajax请求$.get("findUserServlet",{username:username},function (data) {//这个值username,指的是前面那个username变量。即键值对的值可以是某个变量。/*期待:1.用户名存在返回一个{"userExist":true,"msg":"此用户名太受欢迎,请更换一个"}2.用户名不存在返回一个{"userExist":false,"msg":"用户名可用"}*///判断userExsit键的值是否是truevar span = $("#s_username");if(data.userExist){//data.userExsit就是获取响应的json中的键为userExist的值。我也不知道data是一个什么数据类型的数据,反正data的对应的是一个json的字符串,然后你data可以通过data.XX来拿到这个字符串{}中的这个键的值,注意是{}中的哦。//用户名存在span.css("color","red");span.html(data.msg);}else{//用户名不存在span.css("color","green");span.html(data.msg);}},"json");}); });</script>
</head>
<body><form><input type="text" id="username" name="username" placeholder="请输入用户名"><span id="s_username"></span><br><input type="password" name="password" placeholder="请输入密码"><br><input type="submit" value="注册"><br></form></body>
</html>

关于data的用法补充一点:看下面这个截图的笔记就行了,这个是后面任务的一个例题。注意:下面这个截图红色字体的解释是有误的,这个data其实是一个js对象,就是响应的json字符串对应的js对象,因为那个json对象是[{},{},……],所以是一个js数组对象。所以下面这个遍历不是json对象的一种遍历方式,而是遍历js对象的遍历方式,把js对象转为jq对象,然后遍历。(所以下面这个截图里面的这个解释有点问题,但是我就不改了,不改然后在这里用高亮的字体提出来,就可以让我们注意避免让我们再次走入这个误区了,总之,这里的data获取到的是js对象)。
在这里插入图片描述

package cn.itcast.web.servlet;import com.fasterxml.jackson.databind.ObjectMapper;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;@WebServlet("/findUserServlet")
public class FindUserServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取用户名String username = request.getParameter("username");//2.调用service层判断用户名是否存在。这里简化了,没有写service层的代码。//期望服务器响应回的数据格式为://如果数据库里面有存在一样的用户名:响应{"userExsit":true,"msg":"此用户名太受欢迎,请更换一个"}这样的json数据//如果数据库里面有不存在一样的用户名:响应{"userExsit":false,"msg":"用户名可用"}这样的json数据//设置响应的数据格式为jsonresponse.setContentType("application/json;charset=utf-8");//浏览器默认是会把你写的数据当作字符串去解析,但是你浏览器那边写的解析代码是当作json来解析的,所以你得告诉浏览器你服务器传的资源的格式是json格式的,且是utf-8格式的数据,utf-8是为了避免显示服务器拿到的中文数据到html文档中的时候出现中文乱码问题。Map<String,Object> map = new HashMap<String,Object>();//就比如说数据库里面已经存在的用户名是tom,那么要是你要注册的用户名是tom那么就给浏览器一个”此用户名太受欢迎,请更换一个“的提示。不存在一样的用户名响应”用户名可用“if("tom".equals(username)){//存在.map.put("userExist",true);map.put("msg","此用户名太受欢迎,请更换一个");}else{//不存在map.put("userExist",false);map.put("msg","用户名可用");}//将map转为json,并且传递给客户端//将map转为jsonObjectMapper mapper = new ObjectMapper();//传递给客户端mapper.writeValue(response.getWriter(),map);//这里我们直接用这个writerValue(Writer,Object)这个方法来写数据到客户端去。response.getWriter()就是获取那个能连接到客户端的那个流对象。}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}

注意:

在这里插入图片描述


http://chatgpt.dhexx.cn/article/3UklaPdn.shtml

相关文章

AJAX请求常用的几种写法

1.什么是 AJAX&#xff1f; AJAX 异步 JavaScript 和 XML&#xff08;Asynchronous JavaScript and XML&#xff09;。 简短地说&#xff0c;在不重载整个网页的情况下&#xff0c;AJAX 通过后台加载数据&#xff0c;并在网页上进行显示。 异步加载&#xff0c;局部刷新&am…

ajax的两种写法

一、原生ajax的实现 1.什么是ajax&#xff1f; ajax是异步的javas和xml&#xff08; Asynchronous JavaScript And XML&#xff09;。 通过在后台与服务器进行小量的数据交换&#xff0c;ajax可以使网页实现异步更新。就是说可以在不刷新页面的情况下&#xff0c;对页面的某…

【ajax】ajax详解,ajax是什么?

思路&#xff1a; ajax&#xff1a;&#xff08;asynchronous javascript and xml&#xff09; asynchronous 异步的 ajax是什么&#xff1f; ajax是一种用来改善用户体验的技术&#xff0c;其本质是利用浏览器提供的一个特殊的对象&#xff08;XMLHttpRequest,也可称之为ajax…

Ajax的请求写法详解

简介 是什么 Ajax全称Asynchronous JavaScript and XML&#xff0c;直译过来就是异步的javascript 和 XML。为什么是叫XML还得由于最开始用ajax实现客户端和服务器端数据通信的时候&#xff0c;传输的数据格式一般都是xml格式的数据&#xff0c;所以把它称之为异步js和xml&am…

$.ajax的标准写法

$.ajax({2 url:"http://www.microsoft.com", //请求的url地址3 dataType:"json", //返回格式为json4 async:true,//请求是否异步&#xff0c;默认为异步&#xff0c;这也是ajax重要特性5 data:{"id":"value"}, …

ajax详细用法

一、基础知识 1、首先让我们了解ajax---------------- 通过在后台与服务器进行少量数据交换&#xff0c;AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下&#xff0c;对网页的某部分进行更新。 2、ajax的核心步骤&#xff1a; 创建XMLHttpReq…

ajax的常见几种写法以及用法

一、服务端数据格式 1.自定义po类 package com.hbut.ssm.po;/*** pojo类**/ public class Children {private String name;private Integer age;private String gender;public Children(String name, Integer age, String gender) {super();this.name name;this.age age;thi…

Ajax的三种写法(最原始的写法+最常用的写法+最简便的写法)

AJAX&#xff1a;Asynchronous JavaScript AND XML 定义&#xff1a;浏览器向服务器发送的异步请求&#xff08;不改变页面的情况下&#xff0c;发送的变化&#xff09; 核心&#xff1a;浏览器向服务器发送异步请求&#xff0c;javascript中提供xmlHttpRequest对象&#xf…

利用油管语音转文字

https://www.tunestotube.com/ 音频上传油管https://zhuwei.me/y2b/ 获取油管字幕文章转载自 https://www.jianshu.com/p/762ae8461243

怎样能把文字变成语音

文字转语音目前在人们的生活和工作中发挥着很大的作用&#xff1b;没事的时候人们总是喜欢看看手机新闻或者玩玩电脑游戏&#xff0c;我们在看新闻的内容时&#xff0c;长时间的盯着屏幕看文字&#xff0c;很快会让眼睛变的疲劳&#xff0c;如果想要让眼睛得到休息又能够获取新…

Java文字转语音功能实现

也许&#xff0c;有些时候&#xff0c;你需要这个需求呢&#xff0c;来上代码 我会写出两种不同方式的文字转语音demo&#xff0c;直接copy走用&#xff0c;节省开发时间 git项目下载地址 1.直接使用jdk的 jacob&#xff0c;效果还不错&#xff0c;特点&#xff1a;免费的 2…

电脑文字转语音怎么弄?这些方法值得一试

有时我们需要在上网搜索一些文献作为参考&#xff0c;但有些资料文字太多&#xff0c;内容枯燥&#xff0c;不是很想阅读。这时我们可以将网页文字转成语音&#xff0c;就不用一直盯着屏幕上的文字&#xff0c;通过“听”的方式&#xff0c;还可以让我们放松下来。那么你知道网…

视频语音识别文字

广告关闭 9.9元享100G流量包&#xff0c;1年有效&#xff0c;低至1元/天&#xff0c;具备美颜动效视频处理等功能&#xff0c;支持定制开发&#xff0c;最快1天接入。 腾讯云语音识别服务开放实时语音识别、一句话识别和录音文件识别三种服务形式&#xff0c;满足不同类型开发…

如何将视频的语音变成文字播放出来?

看到回答中很多人分享的是软件&#xff0c;每次使用都需要下载&#xff0c;给大家分享两款在线端语音转文字工具&#xff0c;不用下载安装&#xff0c;在线登录就能使用&#xff0c;非常方便。 1、网易见外 网易见外是网易团队上线的一款转文本工具&#xff0c;上线了视频转写…

如何才能实现文字转语音播放?只要这三个步骤就能快速搞定!

大家知道吗&#xff1f;配音已经不再是影视制作的专属工作了&#xff0c;如今随着各种短视频平台的热度上涨&#xff0c;许多普通用户也加入到短视频的制作中&#xff0c;市面上也陆续出现许多专门服务于这类人员的配音工具&#xff0c;依托它们&#xff0c;大家无需进行人工配…

手把手教你实现——Python文字(汉字)转语音教程,举一反三~

前言&#xff1a; 这是一篇简单的Python文字&#xff08;汉字&#xff09;转语音教程&#xff0c;当然对于其他语言工具在实现的方法上也是一样的 。 在自然语言处理上&#xff0c;文字、音频互转是一个很关键的技术点。对于语音转文字&#xff0c;个人实现较为困难&#xff…

在线文字转成语音怎么转

很多小伙伴在办公或学习中&#xff0c;经常或需要浏览大量资料。随着时间越来越长&#xff0c;我们的眼睛就会多度疲劳。为了不戴上眼镜&#xff0c;我们只能改变当前的方式&#xff0c;也就是把文字变成语音去听&#xff0c;而不是去看。那么就有小伙伴想问了在线文字转成语音…

做短视频时如何将文字转为语音?分享三个小方法,教你轻松配音

做短视频时如何将文字转为语音&#xff1f;分享三个小方法&#xff0c;教你轻松配音 在做短视频的时候&#xff0c;经常会遇到需要将文字转为语音&#xff0c;为短视频配音的情况。那么&#xff0c;我们可以如何为短视频配音呢&#xff1f;文字转为语音的方法又有哪些呢&#…

小程序实现文字转语音

1、在微信公众平台登录小程序&#xff0c;添加插件微信同声翻译 搜索微信同声翻译点击添加&#xff0c;即可进行开发 代码 index.html <view><button class"showCharacter" bindtap"wordYun">跟我读</button> </view>index.js …

在线文字转语音怎么转

小伙伴们有没有遇到过需要把文字变成语音&#xff0c;要求发声的问题呢&#xff1f;其实在很多领域需要把文字变成语音&#xff0c;比如我们每天接触的短视频领域&#xff0c;尤其是一些影视评论博主使用的评论视频。这给短视频制作人带来了很多便利&#xff0c;节省了配音成本…