HuangHongRui / huanghongrui.github.io

:poultry_leg: MyBlog | Keep track of every moment.. :icecream:
http://blog.luckyman.xyz/
3 stars 1 forks source link

Ajax #15

Open HuangHongRui opened 6 years ago

HuangHongRui commented 6 years ago

出生:Ajax技术首次出现于2005年一篇在线文章。 功能:向server请求额外的数据而不无须卸载页面。(无须刷新页面即可从Server获取数据) 优点:带来更好的用户体验。 核心技术XMLHttpRequest对象(简称:XHR) XHR是什么:是为向Server发送请求和解析Server响应提供了的流畅接口。 XHR用途:通过XHR对象取得新数据,然再通过DOM讲数据插入页面中。 另外:AJAX(Asynchronous JavaScript + XML)通信跟数据格式无关。获取数据不一定是XML数据。 缺点:破坏浏览器的后退与加入收藏书签功能。

HuangHongRui commented 6 years ago

使用XHR对象时,先使用 open()方法,接受3个参数。 ——open('get/post'方式 , URL , 是否异步) 该方法调用时病不真发送请求,只是启动一个请求以备发送。

发送请求的方法——send( ) 接收一个参数——作为请求主体发送的数据。如无须通过请求主体发送数据,则必须传入null。 调用后,请求被分派到server。

请求发送后,得到server响应,响应的数据将自动填充到XHR对象的属性:

  1. responseText 作为响应主体返回的文本
  2. responseXML 根据响应内容类型,来返回数据文档。
  3. status 响应HTTP状态
  4. statusText 状态说明

XHR的readyState属性表示请求/响应过程的当前活动阶段:

只要readyState的状态值每变化一次,则触发一次 readystatechange事件。 可以利用该事件检测每次状态变化后的readyState的值。 【必须再调用open()之前指定这个事件处理程序才能确保跨浏览器兼容性。(前面+on)】

HuangHongRui commented 6 years ago

HTTP头部Info 每个HTTP请求/响应都带有头部信息。 XHR提供了操作{请求头部}{响应头部}信息的方法。

setRequestHeader 可设置自定义请求头部信息,接受2个参数——头部字段名称头部字段的值, 使用要求:必须在调用open()后&&send()前 调用。

getResponseHeader() :传入头部字段名称,可获取相应的响应头部信息。 getAllResponseHeaders():获取一个包含所有头部info的长字符串。