AJAX

原生AJAX

XML 简介

XML 被设计用来传输和存储数据。HTML 是在网页中呈现数据的。XML 数据交互,HTML 数据呈现。
XML 和 HTML 类似,不同的是HTML 中都是预定义标签,而 XML 中没有预定义标签。预定义标签是已经被定义的标签,不能改变,比如 strong,ul标签等。,而 XML 中全都是自定义标签,用来表示一些数据,比如name,age,gender等。
在这里插入图片描述
不过现在XML 已经被JSON取代了
在这里插入图片描述

AJAX 的特点

AJAX 的优缺点

优点:
1.可以无需刷新页面而与服务器端进行通信,这也是创建AJAX 的初衷。
2.允许你根据用户事件来更新部分页面内容。事件例如鼠标点击经过事件等等。
缺点:
1.没有浏览历史,不能回退
2.存在跨域问题(同源)。跨域是从一个服务端到另一个服务端比如从a.com -> b.com。AJAX 不能跨域。
3.对SEO 不友好,也就是对爬虫不友好,不能找到数据。

HTTP协议

HTTP(hypertext transport protocol)协议【超文本传输协议】,协议详细规定了浏览器和万维网服务器之间互相通信的规则。

请求报文

在这里插入图片描述
如果行中的是 GET ,那么请求体就是空的,如果是POST,请求体可以不为空。
请求行的三个内容:请求类型,URL路径,协议版本

响应报文

在这里插入图片描述
响应行的三个内容:协议版本,响应状态码,响应字符串。

AJAX 请求的基本操作

在这里插入图片描述

0表示初始值,1表示open初始化完成,2表示send发送完成,3表示服务器返回了部分结果,4表示服务器返回了所有的结果。

  1. 创建对象
    const xhr = new XMLHttpRequest()
    2.初始化
    xhr.open(‘GET’,‘URL’)
    3.发送
    xhr.send()
    4.事件绑定 处理服务端返回的结果
    xhr.onreadystatechange = function(){
    判断
    }

AJAX 设置请求参数

在这里插入图片描述

AJAX POST设置请求体

在这里插入图片描述

AJAX 设置请求头

在这里插入图片描述
xhr.setRequestHeader(‘名字’,‘值’)
名字和值可以是预定义也可以是自定义。

AJAX 服务端响应JSON数据

服务端在这里插入图片描述
服务器将字符串(请求体)返回给客户端,客户端要将返回的字符串转换为对象。有两种方式。
手动对数据进行转化:
在这里插入图片描述
自动转化:
在这里插入图片描述
设置响应体数据的类型
xhr.responseType = ‘json’

AJAX 请求超时和网络异常处理

在这里插入图片描述
在这里插入图片描述
手动取消。abort()方法。
在这里插入图片描述

Axios 发送AJAX 请求

在这里插入图片描述

GET 请求
baseURL 是为了简化代码。
在这里插入图片描述
POST 请求
在这里插入图片描述
先是请求体,再是其他请求。

Axios函数发送AJAX请求

在这里插入图片描述
在这里插入图片描述

fetch 函数发送AJAX 请求

在这里插入图片描述

相关推荐

  1. Ajax

    2024-06-06 15:00:04       52 阅读
  2. Ajax

    2024-06-06 15:00:04       53 阅读
  3. <span style='color:red;'>AJAX</span>.

    AJAX.

    2024-06-06 15:00:04      55 阅读
  4. <span style='color:red;'>AJAX</span>

    AJAX

    2024-06-06 15:00:04      36 阅读
  5. <span style='color:red;'>AJAX</span>

    AJAX

    2024-06-06 15:00:04      41 阅读
  6. <span style='color:red;'>Ajax</span>

    Ajax

    2024-06-06 15:00:04      31 阅读
  7. <span style='color:red;'>Ajax</span>.

    Ajax.

    2024-06-06 15:00:04      36 阅读
  8. <span style='color:red;'>AJAX</span>

    AJAX

    2024-06-06 15:00:04      27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 15:00:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 15:00:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 15:00:04       82 阅读
  4. Python语言-面向对象

    2024-06-06 15:00:04       91 阅读

热门阅读

  1. leetcode刷题

    2024-06-06 15:00:04       29 阅读
  2. WebRTC 在 Android 端实现一对一通信

    2024-06-06 15:00:04       24 阅读
  3. Webrtc支持HEVC之Mediasoup SDP协商编码流程(三)

    2024-06-06 15:00:04       27 阅读
  4. Webrtc支持HEVC之编解码器创建(二)

    2024-06-06 15:00:04       27 阅读
  5. cuda 存储相关博客收藏

    2024-06-06 15:00:04       26 阅读
  6. 注解 - @RequestParam

    2024-06-06 15:00:04       24 阅读
  7. Python正则表达式匹配中文:深入解析与实战应用

    2024-06-06 15:00:04       26 阅读
  8. git -- 清除本地分支以及删除远程分支

    2024-06-06 15:00:04       32 阅读
  9. STM32开发遇见问题解决2024.6.6

    2024-06-06 15:00:04       32 阅读
  10. Elasticsearch核心概念解析:索引、文档与类型

    2024-06-06 15:00:04       29 阅读
  11. MQ基础(RabbitMQ)

    2024-06-06 15:00:04       30 阅读
  12. Linux系统编程之进程间通信(IPC)

    2024-06-06 15:00:04       28 阅读