概述 XMLHttpRequest是一个前端获取服务端数据的API对象。...代码示例 var request = new XMLHttpRequest(); request.onload = function() { if(this.status == 200...processing data } } else { // handle error } } request.open("GET", "xxxUrl"); request.send(); 代码说明...示例中实例化了一个XMLHttpRequest对象,通过为该对象绑定onload回调函数处理从xxxUrl返回来的数据。...XMLHttpRequest支持的事件主要有: onloadstart onprogress onabort onerror onload ontimeout onloadend onreadystatechange
1.2 XMLHttpRequest对象 IE6及以下尚未定义的,干脆就忘了它们吧~ ? ? ? 1.3 HTTP 请求 ? ? ? ? ? 请求报文样例 ? ? ? ? 1.4 发送请求 ?...readyState 属性存有 XMLHttpRequest 的状态信息。 下面是 XMLHttpRequest 对象的三个重要的属性: ? ?...当 readyState 等于 4 且状态为 200 时,表示响应已就绪: ? 1.6 例子简介 ? ? ? ? ? ? ? ? ? 下载
true表示异步、false表示同步,默认为true。 name:该参数为可选参数,用于输入用户名。如果服务器需要验证,则必须使用该参数。 password:该参数为可选,用于输入密码。...//定义函数 function getData(){ //判断XMLHttpRequest对象的readyState属性值是否为4,如果为4表示异步调用完成 if(xmlHttpRequest.readyState...== 4) { //设置获取数据的语句 } } 4、设置获取服务器返回数据的语句 如果XMLHttpRequest对象的readyState属性值等于4,表示异步调用过程完毕...通常将以上代码放在响应HTTP请求状态变化的函数体内,如以下代码所示: //设置当XMLHttpRequest对象状态改变时调用的函数,注意函数名后面不要添加小括号 xmlHttpRequest.onreadystatechange...= getData; //定义函数 function getData(){ //判断XMLHttpRequest对象的readyState属性值是否为4,如果为4表示异步调用完成 if
为了识别HTTP错误,我们必须检查onload方法中的HTTP状态代码。 我们可以按照类似的模式使用XMLHttpRequest发送POST请求。...XMLHttpRequest的缺点 代码是冗长的和不必要的长。 不支持async/await或基于承诺的语法。...支持基于承诺的实现,允许我们写干净,简洁的代码。 在XMLHttpRequest上提供额外的特性,例如将请求和响应对象与本机缓存API集成,并发送无cors请求。...Axios还在其catch方法中捕获HTTP错误,从而无需在处理响应之前专门检查状态代码。在catch方法内部,我们可以使用一个错误来区分HTTP错误。响应检查,它存储HTTP错误代码。...状态字段将保持未定义。 我们可以用类似的方式用SuperAgent发送POST请求。
500表示“服务器内容部错误” statusText 服务器返回状态码的文本信息 readyState 表示XMLHttpRequest对象的状态 0=未初始化。... = new XMLHttpRequest(); 所以,综合了这两种实例化XMLHttpRequest的形式,就可以提取出一个实例化的公共方法,代码如下: Js代码 //实例化XMLHttpRequest...只需将相应的处理函数名称赋给XMLHttpRequest对象的onreadystatechange属性即可,比如: Js代码 xmlHttp.onreadystatechange = callBack...Js代码 xmlHttp.open("get/Post","URL",true/false); xmlHttp.send(null); 3.1 open()方法详解 Js代码...3.2 send()方法详解 Js代码 //XMLHttpRequest对象的send()方法原型 void send(content); send()方法具体向服务器发送请求
"); 针对其他的浏览器: Js代码 var xmlhttp = new XMLHttpRequest(); 由于这两种实例化XMLHttpRequest的形式不同,所以在判断浏览器到底采用的是哪种实例化XMLHttpRequest对象,我就要做出判断,代码如下: Js代码...if(xmlhttp.status == 200){ //表示服务器的响应代码是200,正确的返回了数据 //纯文本数据的接受方法...加括号表示将回调函数的返回值注册给onreadystatechange属性。 3、open方法最多可以有五个参数,其中头三个参数是必须的。...if(xmlhttp.status == 200){ //表示服务器的响应代码是200,正确的返回了数据
XMLHttpRequest对象时,最好把两种方法都写上,如下代码所示。...// 判断XMLHttpRequest对象的readyState属性值是否为 4 ,如果为4则表示异步调用完成 if(xmlHttpRequest.readyState ==...= 4){ // 获取数据的语句 } } 4、设置获取服务器返回数据的语句 如果XMLHttpRequest对象的readyState属性值等于4,表示异步调用过程完毕...异步调用过程完毕,并不代表异步调用成功了,如果要判断异步调用是否成功,还要判断 XMLHttpRequest 对象的status属性值,只有status === 200 ,才表示异步调用成功。...4 ,如果为4则表示异步调用完成 if(xmlHttpRequest.readyState === 4){ if(xmlHttpRequest.status ===
创建 XMLHttpRequest 对象要创建一个 XMLHttpRequest 对象,可以使用如下代码:var xhr = new XMLHttpRequest();上述代码会创建一个新的 XMLHttpRequest...readyState:表示 XMLHttpRequest 对象的请求状态,其值为整数。0:未初始化。XMLHttpRequest 对象已创建但尚未调用 open() 方法。1:已打开。...参数 method 表示请求的类型(GET、POST 等),url 表示请求的 URL,async 表示是否异步,默认为 true。send([data]):发送 AJAX 请求。...当 readyState 变为 4(已完成)且 status 为 200(成功)时,表示服务器返回了有效的响应。我们可以通过 responseText 属性获取服务器返回的文本,并按需进行解析和处理。.../data', false);xhr.send();console.log(xhr.responseText);上述代码将请求设置为同步,其中的 console.log(xhr.responseText
url:表示请求的服务器的地址; asynch:表示是否采用异步方法,true为异步,false为同步; 后边两个可以不指定,username和password分别表示用户名和密码,提供http...对应的XMLHttpRequest对象会复位到未初始化的状态。 二、XMLHttpRequest属性: 1、readyState 表示XMLHttpRequest对象的状态:0:未初始化。...200表示“成功”,404表示“未找到”,500表示“服务器内部错误”等。 6、statusText 服务器返回状态的文本信息。...,启动和服务器端的交互 第五步:判断和服务器端的交互是否完成,还要判断服务器端是否正确返回了数据 代码展示: 1、创建XMLHttpRequest对象 1 function callback(){ 2 if(xmlhttp.readState==4){ 3 //表示服务器的相应代码是
ReferenceError: 引用了未定义的变量或对象 TypeError: 类型错误 URIError: URI操作错误 SyntaxError: 语法错误 (这个错误WebIDL中故意省略,保留给...如果想更详细了解可以看详细错误罗列这篇文章 静态资源错误 通过 XMLHttpRequest、Fetch() 的方式来请求的 http 资源时。...try { throw new Error("这是一个同步代码中的错误"); } catch (e) { console.log(e); } 自己封装XMLHttpRequest&fetch...// 覆写XMLHttpRequest API if(!...window.XMLHttpRequest) return; var xmlhttp = window.XMLHttpRequest; var _oldSend = xmlhttp.prototype.send
XMLHttpRequest对象的readyState属性 XMLHttpRequest对象的readyState属性,是描述XMLHttpRequest对象状态的一个数字。...readyState属性的取值: 0: 初始化XMLHttpRequest对象 1: 执行open()方法后,XMLHttpRequest对象完成初始化 2: 执行send()方法后,XMLHttpRequest...onreadystatechange 事件的使用方法 onreadystatechange事件的作用是检测XMLHttpRequest对象的就绪状态变化,并执行一段代码。...this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; 在上面的代码中...在这个例子中,如果就绪状态为4,表示XMLHttpRequest对象已经接收到了服务器的响应,且状态码为200,表示请求被正常处理。此时,将响应文本插入HTML文档中的指定元素。
为了保证跨浏览器,你不得不为同样的事情,写不同的代码分支。...这一点在IE中就很明显,不同的IE浏览器创建XMLHttpRequest对象的代码不同微软最早在IE5中以ActiveX名叫XMLHttp的对象,所以在IE中创建新的XMLHttp对象的代码就应该这样写...介绍完了,话不多说,上代码: js代码: //JS Ajax starting function getNewContent() { var request = getXMLHttpRequestObject...: readyStates属性:浏览器会在不同阶段更新readyState属性的值,它有5个可能的值: 0表示未初始化 1表示正在加载 2表示加载完毕 3表示正在交互 4表示完成 只要readyState...如果脚本依赖于服务器的响应结果,那么就应该把脚本代码都转移到指定给onreadystatechange的那个函数中去;
TypeError:类型错误,表示值的类型非预期类型时发生的错误。...== 1) return x return x * pow(x, n - 1); } pow(10,5) 2、ReferenceError: "x" is not defined 含义:“x”未定义...访问或设置未定义(undefined)或null值的属性时会发生这种报错。...9、DOMException: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL 含义:无效的Url 为什么报错?...举个栗子 function createXHR(url) { let xhr = new XMLHttpRequest(); xhr.open('POST', url, true
响应体开始接收但未完成 4 Loaded HTTP 响应已经完全接收 ☞ status 由服务器返回的 HTTP 状态代码,如 200 表示成功,而 404 表示 “Not Found” 错误。...☞ statusText 这个属性用名称而不是数字指定了请求的 HTTP 的状态代码。也就是说,当状态为 200 的时候它是 “OK”,当状态为 404 的时候它是 “Not Found”。...☞ response 该属性只读表示服务器返回的数据体,可能是任意的数据类型,比如字符串,对象,二进制对象等,具体类型由responseType 属性决定。...☞ responseType 表示服务器返回数据的类型,这个属性是可写的,在 open 之后,send 之前,告诉服务器返回指定类型的数据。...如果 responseType 设为空字符串,就等同于默认值 text 表示服务器返回文本数据;arraybuffer 表示服务器返回二进制数组;blob 表示返回二进制对象;document 返回一个文档对象
, Opera, Safari 浏览器执行代码 xhr=new XMLHttpRequest(); }else{ // IE6, IE5 浏览器执行代码...null; if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码...xhr=new XMLHttpRequest(); }else{ // IE6, IE5 浏览器执行代码 xhr=new ActiveXObject("Microsoft.XMLHTTP...http请求方法,一般使用"GET","POST". url:表示请求的服务器的地址; asynch:表示是否采用异步方法,true为异步,false为同步; 后边两个可以不指定,username和password...分别表示用户名和密码,提供http认证机制需要的用户名和密码。
用JS创建XMLHttpRequest对象并调用其方法实现基本的Ajax请求: xmlhttp = new XMLHttpRequest(); //创建XMLHttpRequest对象 xmlhttp.onreadystatechange...; var test = document.getElementById(“test”); test.innerHTML += data + “ “; } } 其中xmlhttp.readyState表示请求执行的状态...(4表示请求完成),而xmlhttp.status表示http的响应返回状态码。...下面写一个小例子实现Ajax向后端请求数据: 服务端代码(Java实现) @WebServlet(name = “AddServlet”, urlPatterns = “/AddServlet”) public...response) throws ServletException, IOException { response.getWriter().write(“helloworld”); } } 客户端代码
在e.nativeXMLHttpRequestSend 时往前调试7步左右,发现一处和XMLHttpRequest有关的方法。 在方法末尾的send处打上断点,然后放掉所有请求,重新触发断点。...只需要这两个断点即可分析大概的流程,既先构建一个XMLRequest对象,然后通过改写send方法将其交给webmssdk中的方法加密,加密之后再回到 XMLHttpRequest.prototype.send...虽然代码运行了,但是一直没有结束,代码中有setInterval和setTimeout 定时执行着方法。...在本地代码断点可以看出,req.send()走了一次就结束了,方法没走到webmssdk.js的代码中,说明我们的调用没有成功。 用我们第一段中的代码调试,打上断点。...= function (){} 报错:Cannot read properties of undefined (reading ‘init’) 意思是window中未定义byted_acrawler
自动检测环境为开发环境时启动Mock.js M3. mock代码能直接覆盖global.fetch方法或者XMLHttpRequest构造函数,实现开发无感知 M4. mock配置不影响实际的请求...每个请求对应输出数组中的一个对象,对象的rule属性可以是一个字符串或者一个正则表达式,用来匹配url,对象的res属性则是我们希望的从中请求中拿到的返回的数据 (也许这里面还应该加个type表示请求的类型.../fetchMock.js'); } M3. mock代码能直接覆盖global.fetch方法或者XMLHttpRequest构造函数,实现开发无感知 // fetchMock.js window.fetch...= XMLHttpRequest; 模拟fetch 直接上代码 // 保存系统原生的fetch const originFetch = window.fetch; // 根据fetch的要求返回的response...b: [{c: 1}, {d: 1}], }, } ]; 测试代码 const xhr = new XMLHttpRequest (); xhr.onreadystatechange = function
随着前端页面承载功能越来越多,用户本地浏览器环境也错综复杂,因此即使有完善的测试,我们也无法保证上线的代码不会出错。在这种场景下,前端页面的监控就成了各个web项目必备的工具。...常见错误的分类 对于用户在访问页面时发生的错误,主要包括以下几个类型: 1、js运行时错误 JavaScript代码在用户浏览器中执行时,由于一些边界情况、本地环境的不可控等因素,可能会存在js运行时错误...e.g: 下图是当使用了未定义的变量"foo",导致产生js运行时错误时的上报数据: ? 2、资源加载错误 这里的静态资源包括js、css以及image等。...window.XMLHttpRequest) { return; } let xmlhttp = window.XMLHttpRequest; //...参考文档 1.Using XMLHttpRequest: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest