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


相关推荐

  • python和java哪个好找工作-Python和java哪个就业前景好些?

    python和java哪个好找工作-Python和java哪个就业前景好些?之前写过一篇文章,Python和Java哪个更适合做自动化测试?这个和Python和JAVA哪个更有发展前景?有着异曲同工之妙。Python和Java的争锋由来已久,作为测试菜鸟入门测试行业,都会在这两种语言之间纠结,而大部分人选择一门语言的依据源于他们的发展前景。本文旨在为零基础小白提供一些中肯的意见。所以大佬们,请手下留情,提个人想法经验可以,但是不能说我~首先可以确认的是提出这个问题的肯定是…

    2022年7月7日
    30
  • 圆柱体积计算公式是_锥形体积公式

    圆柱体积计算公式是_锥形体积公式圆柱体积计算公式有哪些π是圆周率,一般取3.14r是圆柱底面半径h为圆柱的高圆柱体体积=底面积×高V=πr2h=V=sh还可以是v=1/2ch×r侧面积的一半×半径2圆柱体积相关公式圆柱的侧面积=底面圆的周长×高圆柱的表面积=上下底面面积+侧面积圆柱的体积=底面积×高3圆柱的体积怎么计算求圆柱体积先要求圆基的半径。两个圆都会做,因为它们大小相同。如果你已经知道半径,你可以继续前进。如果你不知道半径…

    2026年1月28日
    4
  • 十款最实用的Android UI设计工具

    十款最实用的Android UI设计工具十款最实用的AndroidUI设计工具

    2022年6月25日
    30
  • python 自带的word2vec讲解_word2vec训练

    python 自带的word2vec讲解_word2vec训练word2vec理解学习nlp最先了解的概念应该就是词嵌入(wordembedding)吧,Word2vec是谷歌于2013年提出的一种有效的词嵌入的方法,采用了两种模型(CBOW与skip-gram模型)与两种优化方法(负采样与层次softmax方法)的组合。现在使用Word2vec获得词的向量表达,并将其应用于各种nlp任务中已经非常常见。由于我们要用计算机来完成各种自然语言理解的任务,而…

    2025年9月28日
    6
  • 8.2 使用MidJourney使用需要哪些能力?

    8.2 使用MidJourney使用需要哪些能力?

    2026年3月15日
    3
  • visual studio community 2019激活_visual studio 2019社区版安装教程

    visual studio community 2019激活_visual studio 2019社区版安装教程VS2019社区版是免费的,但是需要登录微软账户,不登录只能使用30天,30天之后就无法使用了,如下图:首先使用能够访问外网的电脑登录微软账户注册VS。也可以使用我这个Licensing,直接进入第三步 找到注册文件,路径:C:\Users\{系统登录用户}\AppData\Local\Microsoft\VSCommon 将两个文件夹复制到需要注册的电脑上,路径:C:\…

    2022年8月22日
    25

发表回复

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

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