【Ajax加强】XMLHttpRequest的基本使用

news/2024/11/13 16:18:46/

1 什么是XMLHttpRequest

XMLHttpRequest(简称xhr)是浏览器提供的Javascript对象,通过它,可以请求服务器上的数据资源。之前所学的jQuery 中的Ajax函数,就是基于xhr对象封装出来的。

2 使用xhr发起get请求

步骤:

1、创建xhr对象

2、调用xhr.open()函数

3、调用xhr.send()函数

4、监听xhr.onreadystatechange事件

<script>//1、创建xhr对象var xhr = new XMLHttpRequest();//2、调用open函数xhr.open('get', 'http://www.liulongbin.top:3006/api/getbooks');//3、调用send()函数xhr.send()//4、监听onreadystatechange事件xhr.onreadystatechange = function(){if(xhr.readyState === 4 && xhr.status === 200){console.log(xhr.responseText);}}</script>

3 xhr的readyState属性

XMLHttpRequest对象的readyState 属性,用来表示当前 Ajax请求所处的状态。每个Ajax请求必然处于以下状态中的一个:

4 使用xhr发起带参数的get请求

使用xhr对象发起带参数的GET请求时,只需在调用xhr.open期间,为URL地址指定参数即可:

这种在URL地址后面拼接的参数,叫做查询字符串。

<script>//1、创建xhr对象var xhr = new XMLHttpRequest();//2、调用open函数xhr.open('get', 'http://www.liulongbin.top:3006/api/getbooks?id=1');//3、调用send()函数xhr.send()//4、监听onreadystatechange事件xhr.onreadystatechange = function(){if(xhr.readyState === 4 && xhr.status === 200){console.log(xhr.responseText);}}</script>

5 查询字符串

1、什么是查询字符串

定义:查询字符串 (URL参数))是指在URL的末尾加上用于向服务器发送信息的字符串(变量)。

格式:将英文的?放在URL的末尾,然后再加上参数=值,想加上多个参数的话,使用&符号进行分隔。以这个形式,可以将想要发送给服务器的数据添加到URL中。

2、get请求携带参数的本质

无论使用$.ajiax),还是使用$.get),又或者直接使用xhr对象发起GET请求,当需要携带参数的时候,本质上,都是直接将参数以查询字符串的形式,追加到URL地址的后面,发送到服务器的。

6 URL编码和解码

1、什么是URL编码

URL地址中,只允许出现英文相关的字母、标点符号、数字,因此,在URL地址中不允许出现中文字符。

如果URL中需要包含中文这样的字符,则必须对中文字符进行编码(转义)。

URL编码的原则:使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。

URL编码原则的通俗理解:使用英文字符去表示非英文字符。

2、如何对URL进行编码与解码

 7 使用xhr发起post请求

步骤

1、创建xhr对象

2、调用xhr.open()函数

3、设置Content- Type属性(固定写法)

4、调用xhr.send()函数,同时指定要发送的数据

5、监听xhr.onreadystatechange事件

<script>var xml = new XMLHttpRequest();xml.open('post', 'http://www.liulongbin.top:3006/api/addbook');xml.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');xml.send('bookname=鲁滨逊&author=外国人&publisher=出版社');xml.onreadystatechange = function(){if(xml.readyState === 4 && xml.status === 200){console.log(xml.responseText);}}</script>

 

 

 

 

 


http://www.ppmy.cn/news/274665.html

相关文章

[附源码]java+ssm计算机毕业设计基于Java的二手车买卖管理系统设计与实现x8xm1(源码+程序+数据库+部署)

项目运行 项目含有源码(见文末)、文档、程序、数据库、配套开发软件、软件安装教程 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

rials中,打印日志

在 Rails 中&#xff0c;你可以使用 logger 对象来打印日志。logger 对象是一个全局的 Ruby 对象&#xff0c;你可以在任何地方使用它来打印日志。 以下是一些常用的 logger 方法&#xff1a; - logger.debug: 打印调试信息。- logger.info: 打印一般信息。- logger.warn: 打…

经纬度坐标为中心点生成米距离长度半径的圆形面,含java js源码+在线绘制,代码简单零依赖

文章目录 java版源码js版源码在线绘制预览效果关于计算的精确度 前些时间在更新我的坐标边界查询工具的时候&#xff0c;需要用到经纬度坐标点的距离计算&#xff0c;和以坐标点为中心生成一个指定距离为半径的圆&#xff0c;搜了一下没有找到现成简单又合适的代码&#xff0c;…

达梦数据库与MySQL的区别及语法差异

达梦数据库与MySQL的区别及其SQL语句对比 简介&#xff1a;正文&#xff1a;1. 达梦数据库和MySQL的概述2. 特点对比3. SQL语句对比1. 数据类型&#xff1a;2. 语法&#xff1a;1. DDL&#xff08;数据定义语言&#xff09;的差异&#xff1a;2. DML&#xff08;数据操作语言&a…

object.defineproperty方法解析/自己实现一个object.defineProperty/Vue3中的Proxy解析和实现

object.defineproperty 首先说明一下 object.defineproperty不是Vue的方法&#xff0c;而是ES5中新增的方法。该方法可以用于定义对象属性的特性&#xff0c;包括可写性、可枚举、可配置性等。 该方法的代码如下&#xff1a; Object.defineProperty(obj, prop, descriptor)其…

platform驱动和pci驱动的区别

物理结构 platform驱动是虚拟总线&#xff0c;实际上硬件并不存在&#xff0c;可用于所有的硬件平台&#xff0c; pci驱动&#xff0c;是硬件上实际存在的(pci bus)&#xff0c;pci bus主要用于x86规范。 设备注册 需要手动调用platform_device_regster()函数进行注册&#…

PCI设备驱动开发

PCI总线协议 PCI&#xff08;外设部件互连标准&#xff09;总线标准是一种将系统外部设备连接起来的总线标准&#xff0c;它是PC中最重要的总线。 其他总线如ISA总线、USB等总线都挂在PCI总线之上。 PCI ( Peripheral Component Interconnect) 总线是当前最流行的总线之一&am…

PCI驱动框架简单分析

一、PCI 概念介绍 PCI是CPU和外围设备通信的高速传输总线。PCI规范能够实现32位并行数据传输&#xff0c;工作频率为 33MHz 或 66MHz &#xff0c;最大吞吐率高达266MB/s,PCI的衍生物包括 CardBus、mini-PCI、PCI-Express、cPCI等。 PCI总线体系结构是一种层次式的体系结构。在…