Ajax的请求写法详解

article/2025/8/18 0:25:30

简介

是什么

Ajax全称Asynchronous JavaScript and XML,直译过来就是异步的javascript 和 XML。为什么是叫XML还得由于最开始用ajax实现客户端和服务器端数据通信的时候,传输的数据格式一般都是xml格式的数据,所以把它称之为异步js和xml(现在一般都是基于json格式来进行数据传输的)。
需要说明的是Ajax并不是一门新的语言,而是一种使用现有标准的新方法。它是在异步JS和XMLHttpRequest的基础上实现的。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

概念

在未出现Ajax之前,客户端与服务器之间进行数据交互,只能通过特定的标签来实现。如a标签来请求一个新的页面,img、iframe、script等,使用这些标签不是需要刷新页面,就是只能请求到特定的数据。这样的局限性很大,缺点也很明显。
这个时候就需要一种技术更好的处理客户端与服务器之间的数据交互,Ajax应运而生。Ajax可以做到不刷新整个页面接收数据,且可以获得任意类型的数据。

同步和异步

同步:必须等待前面的任务完成,才能继续后面的任务。
异步:不受当前任务的影响。
举个例子:
同步:你去买饭,排队,还没到你,你就在后面等着,啥也不做。
异步:你去买饭,排队,还没到你,你去另一个档口买,最终还是买到了饭。

五个步骤

  1. 创建AJAX引擎对象–所有操作都是通过引擎对象(XMLHttpRequest)。
  2. 绑定监听–监听服务器是否已经返回对应数据(回调函数)
  3. 创建请求消息,绑定地址,及配置其他参数——open()
  4. 发送请求(send)
  5. 接受相应返回数据,这个是写在第三个步骤回调函数里面的

具体写法

首先在写具体写法之前有必要配置一些其他必要的东西,首先Ajax是与服务端之间进行数据传递,所以肯定是需要写服务端语言,我这里使用php语言,然后还需要搭建服务器环境。我这里使用XAMPP,XAMPP 是一个把 Apache 网页服务器与 PHP、Perl 及 MariaDB 集合在一起的安装包,允许用户可以在自己的电脑上轻易的建立网页服务器环境。完全免费且易于安装。关于这个app的安装包和我整个示例代码我放在本篇博客的最后,建议先去把安装包下载下载安装好。
安装好之后找到安装目录xmall/htdocs,安装好之后这个文件夹内的文件都可以删除。然后在这里面去新建文件夹开始你的项目。运行的时候打开浏览器输入localhost:端口号,进入你的项目。端口号是80时可以省略,这是默认的端口号,80端口作为http协议的默认端口,在输入网站的时候其实浏览器(非IE)已经帮忙输入协议了。
如果安装好了xmall
在这里插入图片描述
点击start没有出现端口号,并且报错,很有可能是端口号被占用了,可以参考这篇博客https://blog.csdn.net/ycl396232695/article/details/79908181,改端口号。
安装好了就可以直接开始写了。
我这里就主要展示js部分代码,其他代码可以下载我的源码查看。

get请求
(function(){document.querySelector("[type='button']").onclick = function(){ // 点击提交// 获取用户输入的值var unval = document.querySelector("[name='username']").value;if(!unval){ return;} // 没有输入则不继续往下执行// 1.创建AJAX引擎对象var xhr;// 兼容写法if(window.XMLHttpRequest){xhr = new XMLHttpRequest();} else if(window.ActiveXObject){xhr = new ActiveXObject('Microsoft.XMLHTTP'); // 主要兼容 ie5 ie6} else {alert("你的浏览器不支持异步");}// 2. 绑定监听xhr.onreadystatechange = function(){if(xhr.readyState == 4 && xhr.status == 200){ // 状态码doresponse(xhr);}}// 3. 创建请求消息,连接服务器xhr.open('GET', `./src/php/get.php?username=${unval}`, true);// 4. 发送请求消息xhr.send(null);// 5. 回调函数 接受相应返回数据function doresponse(xhr){// 找到登录提示框let tips = document.getElementsByClassName("utips")[0];// xhr.responseText 接收返回的数据if(xhr.responseText == '0'){ // 没有被注册tips.innerText = "该用户名可以使用";tips.style.color = "green";} else if(xhr.responseText == '1'){ // 被注册tips.innerText = "该用户名已被注册";tips.style.color = "red";}}}})();

兼容性: 一般都只是兼容以前的ie5 ie6现在基本上看不见,所以兼容性很高。
监听: 绑定监听的时候主要监听请求返回的状态码,根据状态判断是否执行回调函数。各种状态码将在这篇博客最后列出来。
传递数据: get请求的参数放在地址内

post请求
(function(){document.querySelector("[type='button']").onclick = function(){ // 点击提交// 获取用户输入的值var unval = document.querySelector("[name='username']").value;var pwdval = document.querySelector("[name='password']").value;if(!unval || !pwdval){ return;} // 账号密码有一个没有输入就不往下执行// 1.创建AJAX引擎对象var xhr = new XMLHttpRequest();// 2. 绑定监听xhr.onreadystatechange = function(){if(xhr.readyState == 4 && xhr.status == 200){doresponse(xhr);}}// 3. 创建请求消息,连接服务器xhr.open('POST', `./src/php/post.php`, true);// 3.5 post方法要设置请求头xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');// 4. 发送请求消息xhr.send(`username=${unval}&password=${pwdval}`); // post请求传入的值放在send里面// 5. 回调函数 接受相应返回数据function doresponse(xhr){// 找到登录提示框let tips = document.getElementsByClassName("utips")[0];if(xhr.responseText == '0'){ // 账号密码错误tips.innerText = "账号密码错误";tips.style.color = "red";} else if(xhr.responseText == '1'){ // 账号密码正确tips.innerText = "账号密码正确";tips.style.color = "green";}}}})()

与get不同,参数传递: post参数传递在send里面,并且post需要设置请求头。

状态码

ajax引擎对象与服务器通信状态码xmlHttp.readystate,范围0~4

状态码意义
0请求未初始化
1服务器连接已建立
2请求已接收
3请求处理中
4请求已完成,且响应已就绪

这个回调函数一共被调用4次,但只有状态码4的时候才代表服务器响应完成数据完成。

http通讯状态码

由于http通讯的状态码巨多,这里只给出两个最常用的。

状态码意义
200(成功)服务器已成功处理了请求。
404(未找到)服务器找不到请求的网页。
500(服务器内部错误)服务器遇到错误,无法完成请求。

示例代码与app:https://gitee.com/cress/Ajax
xampp官网: https://www.apachefriends.org/index.html


http://chatgpt.dhexx.cn/article/HYMAsq8Y.shtml

相关文章

$.ajax的标准写法

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

ajax详细用法

一、基础知识 1、首先让我们了解ajax---------------- 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 2、ajax的核心步骤: 创建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:Asynchronous JavaScript AND XML 定义:浏览器向服务器发送的异步请求(不改变页面的情况下,发送的变化) 核心:浏览器向服务器发送异步请求,javascript中提供xmlHttpRequest对象&#xf…

利用油管语音转文字

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

怎样能把文字变成语音

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

Java文字转语音功能实现

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

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

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

视频语音识别文字

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

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

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

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

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

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

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

在线文字转成语音怎么转

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

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

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

小程序实现文字转语音

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

在线文字转语音怎么转

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

微信公众号 语音转文字api_文字一键转语音,无需安装任何软件

点击蓝字关注我们 截止到今天&#xff0c;整整一个月没有出门了。 人都说&#xff0c;越闲越懒、越吃越馋&#xff0c;这话一点不错&#xff0c;早上睡到八九点&#xff0c;起来洗漱一下&#xff0c;吃点早餐&#xff0c;一整个上午就这么溜走了&#xff0c;以至于老妈给我打视…

php文字转语音amr,如何将文字转成语音?这几个方法一分钟搞定!

原标题:如何将文字转成语音?这几个方法一分钟搞定! 文字转语音在我们的生活中已经广泛使用了,早晨起床想要看看新闻,但是又无奈时间不够,这时不必慌张,想要了解新闻事件,我们直接把这些文字转为语音,随时随地有时间就可以播放出来听,一点都不怕耽误做其它的事情。 那…

Android文字转语音播报

文章目录 前言一、实现方式1.Android系统自带TTS2.第三方语音框架&#xff1a;云知声离线语音(32位&#xff1a;armeabi-v7a)、... 二、Android系统自带TTS1.集成工具类TextToSpeechUtils2.初始化和调用3.需要的支持中文语音引擎 三、第三方语音框架&#xff08;云知声离线语音…

C# 文字转语音

不依赖于第三方程序&#xff0c;使用.net自带的System.Speech实现&#xff0c;添加引用至项目即可 实现功能&#xff1a; 将文字转为语音&#xff0c;实现播放、暂停、继续、停止;以及音量和语速调整等功能&#xff0c;并且支持将音频保存到本地 开发环境&#xff1a; 开发工具…