当前位置: 首页 > news >正文

原生ajax

什么是Ajax

Asynchronous  JavaScript  and  xml   异步的  js  和  xml(数据承载方式) ,本质:使用js提供的异步对象XMLHttpRequest 异步的向服务器提交请求,并且接受服务器响应回来的数据。

使用ajax

1.创建异步对象
var xhr=new XMLHttpRequest();
2.创建请求
xhr.open(method,url,isAsyn);xhr.open("get","http://127.0.0.1:8080/login",true);

method:请求的方法,注意必须是字符串的形式"get" "post"

url:请求的url,注意必须是字符串

isAsyn:是不是要使用异步,boolean值,true/false 

3.发送请求
xhr.send(formdata);

注意,get方法,没有formdata请求主体,所以在使用get方法时,这里的参数可以不填写,也可以写null 

4.绑定监听,接收响应数据

xhr.readyState属性用于表示xhr对象的请求状态,一共5个状态

0:请求尚未初始化
1:  已经打开服务器连接,正在发送请求
2:接收响应头
4:响应数据接收完毕

在发送请求之前,先配置监听,接收响应数据的方法,然后发送请求,所以执行顺序应该是1,2,4,3

get请求

xhr.open("get",url,true)
url="/demo/get_login?uname="+$uname+"&upwd="+$upwd
function login() {//获取页面上用户的用户名和密码var $uname = uname.value;var $upwd = upwd.value;//使用ajax访问服务器,并接受请求//1.创建xhr异步对象var xhr = new XMLHttpRequest();//4.绑定监听,接受响应xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {var result = xhr.responseText;alert(result);}}//2.创建请求,打开连接xhr.open("get", "/demo/get_login?uname=" + $uname + "&upwd=" + $upwd, true);//3.发送请求xhr.send();
}
router.get("/get_login",(req,res)=>{//获取参数var $uname=req.query.uname;var $upwd=req.query.upwd;if(!$uname){res.send("用户名不存在");return;}if(!$upwd){res.send("密码不存在");return;}//查询数据库,返回响应var sql="select * from xz_user where uname=? and upwd=?";pool.query(sql,[$uname,$upwd],(err,result)=>{if(result.length>0){res.send("1");}else{res.send("0");}});});

post请求

xhr.send(formdata)必须带着请求主体发送,请求主体就是一个字符串

var formdata="uname="+$uname+"&upwd="+$upwd;

在xhr.open和xhr.send之间,设置请求头信息,把content-type设置为可以发送特殊字符

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

function login() {//获取用户输入的数据var $uname = uname.value;var $upwd = upwd.value;//ajax操作post//1.获取xhr异步对象var xhr = new XMLHttpRequest();//4.绑定监听xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {var result = xhr.responseText;alert(result);}}//2.打开连接xhr.open("post", "/demo/post_login", true);//创建请求主体,把数据放到请求主体中var formdata = "uname=" + $uname + "&upwd=" + $upwd;//由于要传递整个请求主体//而请求主体中有特殊字符,必须修改请求头xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//3.发送请求xhr.send(formdata);}
router.post("/post_login",function(req,res){//获取前台数据var $uname=req.body.uname;var $upwd=req.body.upwd;if(!$uname){res.send("用户名为空");return;}if(!$upwd){res.send("密码为空");return;}//查询数据库var sql="select * from xz_user where uname=? and upwd=?";pool.query(sql,[$uname,$upwd],(err,result)=>{if(result.length>0){res.send("1");}else{res.send("0");}});
});

相关文章:

原生ajax

什么是Ajax Asynchronous JavaScript and xml 异步的 js 和 xml(数据承载方式) ,本质:使用js提供的异步对象XMLHttpRequest 异步的向服务器提交请求,并且接受服务器响应回来的数据。 使用ajax 1.创建异步对象 var xhrnew XMLHttp…...

面试题库(五):并发编程

多线程类的使用 java线程同步有哪些方法、各自的优缺点synchronized 和ReentrantLock区别,可重入锁是什么?threadlocal有什么用Java中创建线程有几种方式?分别是? 当主线程执行结束后,子线程还会继续执行下去吗?JUC中有哪些常用的集合?(项目中用到的)CopyOnWriteArray…...

Android FileProvider笔记

一、FileProvider是什么 通过FileProvider.getUriForFile(NonNull Context context, NonNull String authority, NonNull File file)方法获得一个有临时权限的Uri给客户端用来访问本APP文件。 当然看FileProvider类的注释更加详细 二、代码示例 <providerandroid:name&q…...

华为云云耀云服务器L实例评测 |云服务器选购

华为云耀云服务器 L 实例是一款轻量级云服务器&#xff0c;开通选择实例即可立刻使用&#xff0c;不需要用户再对服务器进行基础配置。新用户还有专享优惠&#xff0c;2 核心 2G 内存 3M 带宽的服务器只要 89 元/年&#xff0c;可以点击华为云云耀云服务器 L 实例购买地址去购买…...

2023-09-22 LeetCode每日一题(将钱分给最多的儿童)

2023-09-22每日一题 一、题目编号 2591. 将钱分给最多的儿童二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数 money &#xff0c;表示你总共有的钱数&#xff08;单位为美元&#xff09;和另一个整数 children &#xff0c;表示你要将钱分配给多少个儿童。 你…...

功能测试的重要性

前言 在软件开发领域&#xff0c;功能测试是确保软件质量的关键步骤之一。正如其名称所示&#xff0c;功能测试是验证软件产品是否具有其描述的功能和符合预期结果的过程。这种类型的测试非常重要&#xff0c;因为它不仅可以帮助团队检测潜在的缺陷并提高软件品质&#xff0c;…...

《Linux高性能服务器编程》--高级I/O函数

目录 1--Pipe() 2--dup() 和 dup2() 3--readv() 和 writev() 4--sendfile() 5--mmap() 和 munmap() 6--spice() 7--tea() 8--fcntl() 1--Pipe() #include <unistd.h> int pipe(int fd[2]); // 成功返回0&#xff0c;失败返回-1 pipe() 函数可用于创建一个管道&a…...

算法通关村 | 透彻理解动态规划

1. 斐波那契数列 1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;..... f(n) f(n-1) f(n-2) 代码实现 public static int count_2 0;public int fibonacci(int n){if (n < 2){count_2;return n;}int f1 1;int f2 2;i…...

数据结构(持续更新)

嗯,怎么说数据结构果然很玄妙。按照能不能存储多行元素大致分为两类。 不能存好几行的数据包括pair,int,float,double,char,struct; 能存好几行的:map,unordered_map,list,vector,set,string,array。 1. pair “pair” 是 C++ 标准库中的一个模板类,它用于存储…...

nginx部署vue后显示500 Internal Server Error解决方案

前言 描述&#xff1a;当我配置好全部之后&#xff0c;通过 服务器 ip 地址访问&#xff0c;遇到报错信息&#xff1a;500 Internal Server Error。 今天部署vue前端项目一直报错500&#xff0c;无法显示出主页面。 一个以为是自己的dist位置没有访问正确或者nginx.conf的位…...

微调大型语言模型(一):为什么要微调(Why finetune)?

今天我们来学习Deeplearning.ai的在线课程 微调大型语言模型(一)的第一课&#xff1a;为什么要微调(Why finetune)。 我们知道像GPT-3.5这样的大型语言模型(LLM)它所学到的知识截止到2021年9月&#xff0c;那么如果我们向ChatGPT询问2022年以后发生的事情&#xff0c;它可能会…...

【GO】网络请求例子

post请求;multipart/form-data类型 // 构建请求参数requestData : map[string]interface{}{"gb": "","code": "","reMemberInfo": map[string]interface{}{"shi": "","…...

泡泡玛特海外布局动作不断,开启东南亚潮玩盛会

近日&#xff0c;泡泡玛特海外布局动作不断&#xff0c;9月8日至10日&#xff0c;泡泡玛特2023 PTS潮流玩具展&#xff08;下简称新加坡PTS&#xff09;在新加坡滨海湾金沙成功举办&#xff0c;现场人气爆棚&#xff0c;三天吸引了超过2万观众入场&#xff0c;这也是泡泡玛特首…...

uniappAndroid平台签名证书(.keystore)生成

一、安装JRE环境 https://www.oracle.com/java/technologies/downloads/#java8 记住下载默认安装地址。ps&#xff1a;我都默认安装地址C:\Program Files\Java\jdk-1.8 二、安装成功后配置环境变量 系统变量配置 AVA_HOME 放到环境变量去 %JAVA_HOME%\bin 三、生成签名证书…...

Gateway学习和源码解析

文章目录 什么是网关&#xff1f;搭建实验项目demo-servicegateway-service尝试简单上手 路由&#xff08;Route&#xff09;断言&#xff08;Predicate&#xff09;和断言工厂&#xff08;Predicate Factory&#xff09;gateway自带的断言工厂After&#xff08;请求必须在某个…...

移动机器人运动规划 --- 基于图搜索的Dijkstra算法

移动机器人运动规划 --- 基于图搜索的Dijkstra算法 Dijkstra 算法Dijkstra 算法 伪代码流程Dijkstra 算法步骤示例Dijkstra算法的优劣分析 Dijkstra 算法 Dijkstra 算法与BFS算法的区别就是 : 从容器中弹出接下来要访问的节点的规则不同 BFS 弹出: 层级最浅的原则&#xff0c…...

Mybatis SQL构建器

上一篇我们介绍了在Mybatis映射器中使用SelectProvider、InsertProvider、UpdateProvider、DeleteProvider进行对数据的增删改查操作&#xff1b;本篇我们介绍如何使用SQL构建器在Provider中优雅的构建SQL语句。 如果您对在Mybatis映射器中使用SelectProvider、InsertProvider…...

怎么将几张图片做成pdf合在一起

怎么将几张图片做成pdf合在一起&#xff1f;在我们平时的工作中&#xff0c;图片和pdf都是非常重要的电脑文件&#xff0c;使用也非常频繁&#xff0c;图片能够更为直观的展示内容&#xff0c;而pdf则更加的正规&#xff0c;很多重要文件大多会做成pdf格式的。在职场人的日常工…...

关于JPA +SpringBoot 遇到的一些问题及解决方法

关于JPA SpringBoot 遇到的一些问题及解决方法&#xff08;可能会有你正在遇到的&#xff09; 一、JpaRepository相关 1.1 org.springframework.dao.InvalidDataAccessResourceUsageException: Named parameter not bound : id; nested exception is org.hibernate.QueryEx…...

​全国馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许

​全国馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许...

智慧养殖鱼类疾病鱼类病害检测数据集VOC+YOLO格式457张7类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)&#xff1a;457标注数量(xml文件个数)&#xff1a;457标注数量(txt文件个数)&#xff1a;457标注类别数&…...

YOLOv11涨点改进| TGRS 2026 |全网创新首发、Conv卷积改进篇 | 引入SFEM空间-频率特征增强模块,同时建模空间域和频域信息,助力YOLOv11遥感小目标检测,小目标分割高效涨点

一、本文介绍 🔥这篇论文作者使用YOLOv11模型发SCI一区!喜提TGRS 2026顶刊!做遥感小目标检测任务。 本文给大家介绍利用SFEM空间-频率特征增强模块改进YOLOv11网络模型,SFEM 是一种面向 RGB 分支的空间–频域特征增强模块,主要作用是提升复杂场景下 RGB 特征的表达能力…...

【Java 开发日记】我们来说一下无锁队列 Disruptor 的原理

【Java 开发日记】我们来说一下无锁队列 Disruptor 的原理 今天来聊聊 Java 并发领域里一个“神器”级别的组件 —— LMAX Disruptor。它被誉为“高性能无锁队列”&#xff0c;在金融交易系统、日志处理、高吞吐消息中间件等领域广泛使用。LMAX 交易所曾用它实现单线程处理 60…...

数字化智能工厂MES规划建设方案:整体规划与架构、基于RFID的全流程追溯、物联网与数据可视化、预期效益与实施

该方案以RFID技术为核心&#xff0c;通过“无感知”数据采集和在线协同&#xff0c;将生产指令、质量标准和异常响应直接落地到工位&#xff0c;有效解决了制造过程中信息滞后、追溯困难的问题。 1000余份数字工厂合集&#xff08;PPTWORD&#xff09;&#xff1a;智能工厂工业…...

Git-RSCLIP图文相似度应用:构建遥感知识图谱支撑语义推理与关联分析

Git-RSCLIP图文相似度应用&#xff1a;构建遥感知识图谱支撑语义推理与关联分析 1. 引言&#xff1a;从“看图说话”到“知图懂意” 想象一下&#xff0c;你面前有一张从几百公里高空拍摄的卫星图像。上面有蜿蜒的线条、不同颜色的色块、规则或不规则的几何图形。你能看出什么…...

Qwen3-ASR-0.6B功能详解:时间戳预测、强制对齐,小白也能懂

Qwen3-ASR-0.6B功能详解&#xff1a;时间戳预测、强制对齐&#xff0c;小白也能懂 1. 语音识别新标杆&#xff1a;Qwen3-ASR-0.6B简介 1.1 什么是Qwen3-ASR-0.6B Qwen3-ASR-0.6B是一款开源的语音识别模型&#xff0c;属于Qwen3-ASR系列中的轻量级版本。它基于transformers架…...

便携式超级电容点焊机硬件与控制设计解析

1. 项目概述便携点焊机2.1是一款面向锂电维修、电池组组装及电子DIY场景的微型化点焊设备&#xff0c;其核心设计目标是在单手可持握的紧凑结构内&#xff0c;实现对0.05–0.2mm镍带、铜箔等薄型导电材料的可靠焊接。与传统工频点焊机依赖市电变压器和大体积储能电容不同&#…...

5个实用技巧:用VideoDownloadHelper解决在线视频保存难题

5个实用技巧&#xff1a;用VideoDownloadHelper解决在线视频保存难题 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 当你遇到精彩的在线课程…...

Java后端集成MogFace-large:构建高并发人脸检测微服务

Java后端集成MogFace-large&#xff1a;构建高并发人脸检测微服务 最近在做一个社交类应用的后台重构&#xff0c;遇到了一个挺实际的挑战&#xff1a;用户上传的图片量激增&#xff0c;里面的人脸检测需求也跟着水涨船高。之前用的单机版检测库&#xff0c;一到晚高峰就卡得不…...

突破系统壁垒:APK-Installer革新Windows运行安卓应用的无缝体验

突破系统壁垒&#xff1a;APK-Installer革新Windows运行安卓应用的无缝体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾因以下问题而困扰&#xff1a;想在…...