js之网络请求与远程资源

概述

方式
XMLHttpRequest
fetch api
navigator.sendBeacon
websocket

XMLHttpRequest

  • 请求:先open然后send
    • open(method, url, async)
  • 响应:作为XMLHttpRequest的属性,有responseText/responseXMLstatus/statusText
  • 异步请求
    • readyState:其支持的值有0(未初始化),1(已打开),2(已发送),3(接收中),4(已完成)
    • 事件onreadystatechange
  • 请求头:setRequestHeader
  • 响应头:getResponseHeader/getAllResponseHeaders
  • 表单数据:使用FormData
  • 超时:属性使用timeout,事件使用ontimeout
  • 进度事件
    • loadstart:接收到响应的第一个字符
    • progress:接收到响应反复触发
    • error:请求出错时触发
    • abort:调用abort终止连接时触发
    • load:接收响应完成时触发
    • loadend:通信完成时,在load事件 之后
  • 跨源资源共享
    • 预检请求:客户端发送Origin/Access-Control-Request-Method/Access-Control-Request-Headers,服务端回复Access-Control-Allow-Origin/Access-Control-Allow-Methods/Access-Control-Allow-Headers/Acesss-Control-Max-Age
    • 凭据请求:客户端设置withCredentials,服务端加Access-Control-Allow-Credentials

Fetch API

其基础组成为
Fetch API
Request
Response
Headers

fetch方法支持形式

  • fetch(url, initobj):其中initobj中可以包含method, headers, body
  • fetch(request)

Request:其克隆方式有两种,在请求体初始读取时,使用克隆会报错

  • new Request(request)
  • clone

Response:其克隆使用clone方法,限制与Request相似。

body混入:其支持text,json,formData,arrayBuffer,blob方法。在通过流读取时,取body属性,操作处理可以为同步或者异步处理函数

Beacon API

其属于navigator方法,navigator.sendBeacon(url, data)

websocket

  • 创建:new websocket(url)
  • 状态:readystate,0表示正在建立,1表示连接已建立,2连接正在关闭,3表示连接已经关闭
  • 关闭:使用close方法
  • 发送数据:send(data)
  • 接收数据:通过onmessage事件,事件对象的数据通过 event.data
  • 事件
    • onopen:连接建立时
    • onerror:发生错误时
    • onclose:连接关闭时,事件属性有wasClean(连接是否干净关闭),code,reason
相关推荐
Brilliantwxx25 分钟前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
雪的季节29 分钟前
Python 线程同步与异步编程 全解析
java·开发语言
Quz36 分钟前
QML 与 JavaScript 交互方式:内联函数、外部文件、信号槽与工作线程
javascript·qt
超级赛博搬砖工36 分钟前
并发、多线程和HTTP连接之间有什么关系?
网络·网络协议·http
520拼好饭被践踏1 小时前
JAVA+Agent学习day22
java·开发语言·后端·学习
笨蛋不要掉眼泪1 小时前
Java虚拟机:堆的参数配置
java·开发语言·jvm
Allshadow1 小时前
Nest.js - 连接数据库
javascript·nestjs
冰暮流星1 小时前
javascript之date对象
开发语言·javascript·ecmascript
橘子星1 小时前
别光看教程!手把手拆解 React Todo 项目,一文吃透 5 个核心概念
前端·javascript
蜡台1 小时前
使用 uni-popup 实现数据选择器Data-Picker
前端·javascript·html·uniapp·uni-popup·data-picker