XMLHttpRequest的缺点 代码是冗长的和不必要的长。 不支持async/await或基于承诺的语法。...它内置了对承诺的支持,并改进了前面讨论的XMLHttpRequest冗长的语法。...支持基于承诺的实现,允许我们写干净,简洁的代码。 在XMLHttpRequest上提供额外的特性,例如将请求和响应对象与本机缓存API集成,并发送无cors请求。...它在底层与原生XMLHttpRequest API一起工作,为解决诸如拦截HTTP请求和同时发送请求等独特问题带来了一组方便和通用的特性。与Fetch类似,它支持处理异步请求的承诺。...与Axios类似,它在其实现中使用了XMLHttpRequest API,并提供了一组对许多请求处理任务有用的全面特性。该包既支持基于承诺的实现,也支持基于回调的实现。
这也是 Promise 这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。 ♞ 一旦状态改变,就不会再变,任何时候都可以得到这个结果。...Ajax 的本质是使用 XMLHttpRequest 对象来请求数据,而 XMLHttpRequest 对象是通过事件的模式来实现返回数据的处理。...与 XMLHttpRequest 类似,Fetch 是新的 Ajax 的解决方案,会返回一个 Promise。...info 我们可以直接拿到数据 } ); fetch 有两个参数,第一个是 url 是必须要填写的,第二个是 option 是可选的,option 用来设置如 method(GET,POST,PUT...axios.put(url,[data],[config]) axios.patch(url,[data],[config]) 1.4.3 axios 全局配置 // 配置公共的请求头,配置之后再
通过将设置为“XMLHttpRequest”的“X-Requested-With”标头包括在内,该视图将能够检查请求是否为AJAX。 get不会直接返回数据。...它将返回一个response,该response将返回所请求的响应。为了从响应中获取数据,我们必须通过多次使用.then处理程序来使用链式response。...Credentials 我们需要指定如何在请求中发送凭据。凭证可能很棘手,特别是如果项目的前端和后端分别托管。...我们从POST请求中获得的响应将像GET请求一样使用链式承诺进行处理。 在视图中处理POST请求 接受POST请求的视图将从请求中获取数据,对其执行一些操作,然后返回响应。...如果需要支持IE,请查看jQuery或XMLHttpRequest来发出AJAX请求。 AJAX请求应仅限于Django项目的一小部分。
该值返回的数据会被直接解析DOM; 5、XMLHttpRequest对象的常用方法 1、abort() abort方法用来终止已经发出的HTTP请求。...如果是POST请求还要在open()之后、send()之前使setRequestHeader方法设置HTTP头信息。...该方法必须在open()之后、send()之前调用。 6、XMLHttpRequest对象的事件以及对应的事件监听接口 ? image.png 7、 前后端开发联调需要注意哪些事情?...8、点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?...利用布尔值设置一个状态锁,在触发ajax前和数据到来的时候布尔值设置为true,是不锁定的;发送数据之后布尔值为false,是锁定的。
指定标头值 文件位于服务器上的URL open()方法的url参数是指向服务器上文件的地址: xhttp.open("GET", "ajax_test.asp", true); 文件可以是任何类型的文件,如....txt 和 .xml,或服务器脚本文件,如 .asp 和 .php(它们可以在发送响应之前在服务器上执行操作)。...getResponseHeader() 从服务器响应返回特定的标头信息 示例 var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange =...以下示例演示了如何在用户在输入字段中输入字符时,网页可以与Web服务器通信: 示例说明 在上述示例中,当用户在输入字段中键入字符时,将执行名为 "showHint()" 的函数。...以下示例演示了如何在用户在输入字段中输入字符时,网页可以与Web服务器通信: 示例说明 在上述示例中,当用户在输入字段中键入字符时,将执行名为 "showHint()" 的函数。
作为一个前端开发者,你必须先了解 XMLHttpRequest XMLHttpRequest XMLHttpRequest一种支持异步请求的技术,它是Ajax的核心 可以向服务器提出请求并处理响应,而不阻塞用户...可以在页面加载以后进行页面的局部更新 创建 XMLHttpRequest 对象 var xmlHttp; if(window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest...这是浏览器仍然可以作其他事情)->处理完毕 如何发送请求 语法:send(string) 功能:将请求发送到服务器 参数:string仅用于post请求,仅在POST请求时可以传入参数,不需要则发送null,在调用send方法之后请求被发往服务器...responseXML———从服务器进程返回的DOM兼容的文档数据对象 status——从服务器返回的数字代码,如 404(未找到) 、200(已就绪) status Text——伴随状态码的字符串信息...如何在JQuery中使用JSONP呢,很简单,加个参数和改下数据返回类型 -> jsonp 、 dataType $.ajax({ url: "https://class.imooc.com/api
beforeSend(XHR) 类型:Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。...complete(XHR, TS) 类型:Function 请求完成后回调函数 (请求成功或失败之后均调用)。 参数: XMLHttpRequest 对象和一个描述请求类型的字符串。...传入 XMLHttpRequest 对象,描述错误类型的字符串以及一个异常对象(如果有的话) dataFilter 在请求成功之后调用。传入返回的数据以及 "dataType" 参数的值。...并且必须返回新的数据(可能是处理过的)传递给 success 回调函数。 success 当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。...complete 当请求完成之后调用这个函数,无论成功或失败。传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。
概述 对于web应用程序:用户浏览器发送请求.服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML),渲染并显示浏览器上· Ajax和Form表单提交数据的的好处有以下两种...Number states 状态码(整数),如:200、404... 500(服务器错误) 404(没找到) 200系列的(都属正常) 6....String statesText 状态文本(字符串),如:OK、NotFound... 2丶跨浏览器支持 ·XmlHttpRequest IE7+,Firefox,Chrome,Opera,...(全局) su发送请求前执行回调函数(全局) coccess:成功之后执行的回调函数(全局) error:失败之后执行的回调函数...“script”:尝试将返回值当做javascript去执行,然后再将服务器端返回的内容转换成普通文本格式 “json”:将服务器端返回的内容转换成相应的
success: 请求成功调用此函数 error: 请求失败调用此函数 beforeSend(XHR):发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。...传入 XMLHttpRequest 对象,描述错误类型的字符串以及一个异常对象(如果有的话) dataFilter 在请求成功之后调用。传入返回的数据以及 “dataType” 参数的值。...并且必须返回新的数据(可能是处理过的)传递给 success 回调函数。 success 当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。...complete 当请求完成之后调用这个函数,无论成功或失败。传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。...body内容 status 返回状态,这里是”success” xhr XMLHttpRequest 对象 $.ajax({ url: '/api/table/',
ajax原理和XmlHttpRequest对象 Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。...已经接收到全部数据,可以在客户端使用 而XMLHttpRequest正是处理了服务器端和客户端通信的问题所以才会如此的重要。...(全局) error:失败之后执行的回调函数(全局) complete:完成之后执行的回调函数(全局) dataType:将服务器端返回的数据转换成指定类型..."jsonp": JSONP 格式使用 JSONP 形式调用函数时,如 "myurl?...如: wwwh.baidu.com/q?
3、请介绍一下XMLhttprequest对象。 Ajax的核心是JavaScript对象XmlHttpRequest。...因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好。...在 Ajax应用中信息是如何在浏览器和服务器之间传递的 通过XML数据或者字符串 8、在浏览器端如何得到服务器端响应的XML数据。...“Google Suggest”就是使用XMLHttpRequest对象来创建动态的Web接口: 当用户开始输入google的搜索框,Javascript发送用户输入的字符到服务器,然后服务器返回一个建议列表...事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。 AJAX的应用使用支持以上技术的web浏览器作为运行平台。
3、请介绍一下XMLhttprequest对象。 Ajax的核心是JavaScript对象XmlHttpRequest。...因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好。 使用AJAX技术, 就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互。...在 Ajax应用中信息是如何在浏览器和服务器之间传递的 通过XML数据或者字符串 8、在浏览器端如何得到服务器端响应的XML数据。...“Google Suggest”就是使用XMLHttpRequest对象来创建动态的Web接口: 当用户开始输入google的搜索框,Javascript发送用户输入的字符到服务器,然后服务器返回一个建议列表...事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。 AJAX的应用使用支持以上技术的web浏览器作为运行平台。
异步任务在主线程之外执行,例如读取文件(如 fs.readFile)、提出网络请求(如 https.get 或 XMLHttpRequest),或者像定时器(setTimeout)这样简单的任务。...setTimeout 负责在 Timers Web API 中调度计时器,延迟时间为 100 毫秒,之后我们传递给 setTimeout 的回调将被推送到任务队列。...我在这里展示这个是为了展示承诺的常见用法 —— 在一些延迟后解决一个 promise。 然而,延迟本身并不是由 promise 引起的。...之后,每当引擎遇到 then 时,就会创建一个 Promise Reaction 记录和一个 Promise Object。...由于我们没有显式地返回一个值,所以最后一个 then promise 的 [[PromiseResult]] 是未定义的,这意味着它隐式地返回了未定义的值。 当然,使用数字并不是最现实的场景。
3、请介绍一下XMLhttprequest对象。 Ajax的核心是JavaScript对象XmlHttpRequest。...因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好。...在 Ajax应用中信息是如何在浏览器和服务器之间传递的 通过XML数据或者字符串 8、在浏览器端如何得到服务器端响应的XML数据。 ...“Google Suggest”就是使用XMLHttpRequest对象来创建动态的Web接口: 当用户开始输入google的搜索框,Javascript发送用户输入的字符到服务器,然后服务器返回一个建议列表...事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。 AJAX的应用使用支持以上技术的web浏览器作为运行平台。
参数: method: 请求方式(字符串类型),如:POST、GET、DELETE......Number states 状态码(整数),如:200、404... f....String statesText 状态文本(字符串),如:OK、NotFound... 2、跨浏览器支持 XmlHttpRequest IE7+, Firefox, Chrome, Opera,...(全局) success:成功之后执行的回调函数(全局) error:失败之后执行的回调函数(全局)...浏览器同源策略并不是对所有的请求均制约: 制约: XmlHttpRequest 不叼: img、iframe、script等具有src属性的标签 跨域,跨域名访问,如:http://www.c1.com
这如何在代码中表达? 在这种场景中父亲控制着逻辑,父亲把儿子作为一种服务来对待。 我们已经陈述了逻辑。...在此值得一提的是,在他儿子爬山的时候不应该「锁定」父亲不让他做其他事情,这也就是为什么这种场景下许一个承诺,在之后决定(完成或者不完成)是个完美的方案。...使用AngularJs的then()函数我们可以指定每次父亲得到结果之后需要做什么。then()函数接受2个函数作为参数:一个用来在承诺完成时候执行,另一个用来在承诺未完成时候执行。...『完成天气API查询』将会返回一个承诺,如果完成了。...相反,父亲通过一个承诺来决定之后三个可能发生(好天气/坏天气/没天气预报)中的一个。
本文主要介绍如何发起一个跨域请求和如何在服务器端支持CORS。...- multipart/form-data - text/plain 不太简单的请求(A term by Monsur Hossain) 不符合(1)中的条件的请求 浏览器如Chrome...对象存在getResponseHeader方法,允许访问一些简单的响应头部如:Content-Type,Cache-Control等等。...如果服务器对preflight请求直接返回HTTP 200,不包含任何CORS指定的头部,那么这个跨域请求就会失败,触发onerror事件。...控制台中会输出类似一下的报错信息: XMLHttpRequest cannot load http://api.alice.com.
接着我们通过一个简单的例子来看看ajax的强大(为了方便调用接口我们直接使用网上链接https://cnodejs.org/api),为了观看效果明显一些会使用点击事件让大家看看触发结果 Ajax现代浏览器均支持XMLHTTPRequest...点击获取结果 function loadXML() { let xmlhttp = new XMLHttpRequest...我先执行了') } 可以看得到结果依然是先打印了后面的“我先执行了” Promise对象 什么是promise对象 : 从英文翻译来讲就是”承诺...“,既然是承诺肯定就需要去完成嘛,所以还是对应了上面说的 ,异步编程可以理解为在约定的时间内完成的操作。...Ajax 是浏览器内核 network 模块在网络请求完成之后,将回调添加到任务队列中。 代码也写了,结果也看了,但是我们为什么要用promise呢?