【ajax】XMLHTTPRequest

来源:互联网 发布:adobe xd for mac下载 编辑:程序博客网 时间:2024/05/17 21:46

是什么?

    AJAX(Asynchronous Javascript And XML),是异步Javascript和XML,它用于创建快速动态网页。通过在后台与服务器进行少量数据交换,ajax可以是网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

为什么用?

    对于传统的web应用来说,随着时代的发展暴露出很多问题,为了解决这些问题,出现了AJAX技术。
     
     这里写图片描述

怎么用?

(一)如何实现异步更新? ——XMLHTTPRequest

   XmlHttpRequest(简称XMR,可扩展超文本传输请求)。Xml可扩展标记语言,Http超文本传输协议,Request请求。XMLHttpRequest对象可以在不向服务器提交整个页面的情况下,实现局部更新网页。当页面全部加载完毕后,客户端通过该对象向服务器请求数据,服务器端接受数据并处理后,向客户端反馈数据。
  XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个 DOM 文档形式返回内容。尽管名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它可以接收任何形式的文本文档。XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能。                  (来着百度百科)

(二)XMLHTTPRequest——属性方法

这里写图片描述 

(三)问题->解决

(1)XMLHTTPRequest请求的缓存——解决方法:增加时间戳

if(url.indexOf("?")>=0){    url=url+"&t="+(new Date()).valueOf();}else{    url=url+"?t="+(new Date()).valueOf();}

(2)ajax中文乱码——解决方法
1.页面端:包含中文信息的请求数据利用JavaScript中的encodeURI进行两次编码处理
2.服务器端:获取到的请求数据使用URLDecode类的decode方法按照utf-8的方式进行decode
(3)ajax跨域访问——解决方法
1.页面端:

if(url.indexOf("http://")==0){    url=url.replace("?","&");    url="Proxy?url="+url;}

2.服务器端:
get和post方式分开处理
- 获取原始的请求url地址和参数
- get方式利用url和远程地址交互
- post方式利用url和urlConnection和远程地址交互,还要向远程发送请求参数信息

小结

    不断总结,不断学习!