xhr 的简单使用

xhr 的简单使用Ajax Asynchronous 异步的 JavaScript 和 XML Ajax 不是新的编程语言 而是一种使用现有标准的新方法 它最大的优点是在不重新加载整个页面的情况下 可以与服务器交换数据并更新部分网页内容 并且不需要任何浏览器插件 但需要用户允许 JavaScript 在浏览器上执行 总的来说 就是 ajax 是数据请求方式的一

XMLHttpRequest(异步的与服务器交换数据) 是 Ajax 的基础。

xhr 数据请求流程

  1. 跟昨天介绍的一样,首先是新建一个文件夹(我取的名字是LIANXI),在LIANXI文件夹里新建一个文件夹,名为public,在该文件夹里新建一个文件index.html. 在终端打开LIANXI文件夹,输入npm init ,一直按照默认值点击确认,完成后输入npm install express 安装需要的模块,最后在LIANXI文件夹里新建一个js 文件,名为index.js, 一会服务器上的代码将写在这里。
    这里写图片描述

  2. 先写”客户端”,也就是index.html 中的文件
    XMLHttpRequest 对象用于和服务器交换数据。这里发送数据请求的方式有两种,get和post

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用 然而,在以下情况中,请使用 POST 请求: 无法使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(POST 没有数据量限制) 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

get 请求:

var xhr = new XMLHttpRequest() xhr.open('get','/getTest?name=fan&age=18',true); xhr.send();

post 请求,需要自己设置请求头

var xhr = new XMLHttpRequest() xhr.open('POST','/postTest',true) xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded") xhr.send('num=1&des=我爱你')

在index.html 文件中,有两个button 按钮,分别使用get 和post 方法

 <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>xhr 
   title>  
   head> <body> <button onclick="get()">get方法 
   button> <button onclick="post()">post 方法 
   button> <script> function get() { 
     var xhr = new XMLHttpRequest() // open后面有三个参数: // 规定请求的类型、URL 以及是否异步处理请求。 // method:请求的类型;GET 或 POST // url:文件在服务器上的位置 // async:true(异步)或 false(同步) 默认为true xhr.open('get', '/getTest?name=fan&age=18') // 发送请求到后端(服务器) xhr.send() // 当请求被发送到服务器时,我们需要执行一些基于响应的任务。 // 每当 readyState 改变时,就会触发 onreadystatechange 事件。 // readyState 属性存有 XMLHttpRequest 的状态信息。 // 在xhr的准备状态发生改变的时候,调用该方法 xhr.onreadystatechange = function () { 
     if (xhr.readyState == 4 && xhr.status == 200) { console.log(xhr.responseText) } } } function post() { 
     var xhr = new XMLHttpRequest() // post 请求方式,接口后面不能追加参数 xhr.open('post', '/postTest') // 如果使用post 请求方式, 而且是以key=value 这种形式提交的 // 那么需要设置请求头的类型 xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded') xhr.send('num=1&des=我爱你') xhr.onreadystatechange = function () { 
     if (xhr.readyState == 4 && xhr.status == 200) { console.log(xhr.responseText) } } }  
   script>  
   body>  
   html>
  1. 写“服务端” 也就是index.js 中的内容
var express = require('express') var bodyParser = require('body-parser') var web = express() web.use(express.static('public')) // 设置对url 进行编码, 并且不允许url 进行扩展 // 如果设置为False, 那么参数只能为数组或者字符串 // 如果设置为TRUE, 那么参数为任意类型 web.use(bodyParser.urlencoded({extended:false})) web.get('/getTest', function(req, res){ 
    var name1 = req.query.name var age = req.query.age console.log(name1) console.log(age) }) web.post('/postTest', function(req, res){ 
    var num = req.body.num var des = req.body.des console.log(num) console.log(des) }) web.listen('8080', function(){ 
    console.log('服务器启动了') }) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221050.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:02
下一篇 2026年3月17日 下午7:02


相关推荐

  • e.Row.Attributes.Add「建议收藏」

    e.Row.Attributes.Add「建议收藏」其实看到属性这个单词,还有点发憷呢,C#里面有个关键词是Attributes,搞了半天貌似没有弄清楚e.Row.Attributes.Add()函数的介绍,包括参数,什么是Attributes就是往行里面添加属性相当于html里面的一个表里的一个行的属性,你看看那个属性有什么,这个就可以添加什么属性//这个就是在前台添加一个Button的按钮,然后给他添加事件<asp…

    2026年4月14日
    4
  • OpenClaw + 1Panel 快速部署-搭建你的专属 AI 助理

    OpenClaw + 1Panel 快速部署-搭建你的专属 AI 助理

    2026年3月13日
    1
  • 实现单点登录的三种方式

    实现单点登录的三种方式1.登录功能登录功能通常都是基于Cookie来实现的。当用户登录成功后,一般会将登录状态记录到Session中,或者是给用户签发一个Token,然后浏览器将Session的ID或T

    2022年6月30日
    27
  • linux查看文件位置

    linux查看文件位置1 whereiswhere 命令是定位可执行文件 源代码文件 帮助文件在文件系统中的位置 这些文件的属性应属于原始代码 二进制文件 或是帮助文件 whereis 程序还具有搜索源代码 指定备用搜索路径和搜索不寻常项的能力 如果省略参数 则返回所有信息 test localhost whereisbashb bin bash etc bash bashrc usr share man man1 bash 1 gz 说明 以上输出信息从左至右分别为查询的程序

    2025年12月5日
    6
  • origin绘图基础1

    origin绘图基础11.绘制带有置信区间的拟合曲线分析-拟合-拟合曲线图-勾选之信贷(默认95%);图片来源:https://www.originlab.com/index.aspx?go=Products/Origin/DataAnalysis/CurveFitting置信区间估计(confidenceintervalestimate):利用估计的回归方程,对于自变量x的一个给定值x0,求出因变量y的平均值的估计区间。预测区间估计(predictionintervalestimate):利用估计

    2022年5月6日
    50
  • C 语言漏洞最严重,PHP 最易受攻击,程序员该怎么写代码?「建议收藏」

    C 语言漏洞最严重,PHP 最易受攻击,程序员该怎么写代码?

    2022年2月14日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号