AJAX

1.前后端通信原理:服务器和客户端的数据交换

2.什么是AJAX?
1)AJAX = 异步JavaScript + XML(json);
2)通过后台与服务器进行的少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不加载整个网页的情况下,对页面的某部分进行更新。
3)传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
4)有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

3.使用AJAX请求数据

  AJAX创建步骤

    1)创建请求对象
    var xhr = new XMLHttpRequest();

     2)配置请求
    xhr.open('GET','data.json?user = hello&pwd = world',true);

    3)发送请求
    xhr.send(null);//null显示的告诉不需要参数,提高代码的健壮性

    4)监听请求状态
    xhr.onreadystatechange = function(){
          if(xhr.readyState == 4 && xhr.status ==  200){    //获取服务器返回的值
                 console.log(xhr.responseText);     
           }
}

注:处理浏览器兼容问题

var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
如果window下定义了XMLHttpRequest方法,返回方法的内容(‘字符串’隐式转换为true),否则返回undefined,隐式转换为false;

注1://在open方法中配置请求对象:
第一个参数:请求方法:GET/POST
第二个参数:请求接口路径:有绝对路径和相对路径两种
第三个参数:是否发起异步请求,默认是true(异步),可改为false;
//第二个参数情况取决于第一个参数,如果是GET请求,请求的接口需要参数,则把参数字符串拼接到接口后,使用?连接;
//如果第二个参数是POST请求,请求的接口需要参数,就把参数字符串当做send()方法的参数传递给服务器(如果参数中有中文,需要用
encodeURI进行编码);
注2:监听readystatechange事件(每次readystate属性值发生改变都会
触发这个事件)
//只有在服务器处理完毕请求,且处理成功时才可以获取服务器返回的数据
//当xhr.readyState值是4时,代表服务器请求出路完毕
ready state取值情况:0:请求未初始化
1:服务器连接已建立
2:请求已接收
3:请求处理中
4:请求已完成,且响应已就绪
//当xhr.status值是200-300或者304时,表示服务器成功把数据返回下来。一般情况下为200
ststues属性取值情况:200:请求成功
404:未找到页面
500:服务器错误
//如果传输的数据格式是json格式,则需要从responseText属性中获取值
//如果服务器传输的数据格式是xml格式,则需要从responseXML中取值

4.三次握手
  所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:

AJAX_第1张图片
as.png

TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。
(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
(3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了

(注:以下为小全同学整理)
网页错误编号及对应的错误
400 无法解析此请求。
401.1 未经授权:访问由于凭据无效被拒绝。
401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒
绝。
401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
401.4 未经授权:Web 服务器上安装的筛选器授权失败。
401.5 未经授权:ISAPI/CGI 应用程序授权失败。
401.7 未经授权:由于 Web 服务器上的 URL 授权策略而拒绝访问。
403 禁止访问:访问被拒绝。
403.1 禁止访问:执行访问被拒绝。
403.2 禁止访问:读取访问被拒绝。
403.3 禁止访问:写入访问被拒绝。
403.4 禁止访问:需要使用 SSL 查看该资源。
403.5 禁止访问:需要使用 SSL 128 查看该资源。
403.6 禁止访问:客户端的 IP 地址被拒绝。
403.7 禁止访问:需要 SSL 客户端证书。
403.8 禁止访问:客户端的 DNS 名称被拒绝。
403.9 禁止访问:太多客户端试图连接到 Web 服务器。
403.10 禁止访问:Web 服务器配置为拒绝执行访问。
403.11 禁止访问:密码已更改。
403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问。
403.13 禁止访问:客户端证书已在 Web 服务器上吊销。
403.14 禁止访问:在 Web 服务器上已拒绝目录列表。
403.15 禁止访问:Web 服务器已超过客户端访问许可证限制。
403.16 禁止访问:客户端证书格式错误或未被 Web 服务器信任。
403.17 禁止访问:客户端证书已经到期或者尚未生效。
403.18 禁止访问:无法在当前应用程序池中执行请求的 URL。
403.19 禁止访问:无法在该应用程序池中为客户端执行 CGI。
403.20 禁止访问:Passport 登录失败。
404 找不到文件或目录。
404.1 文件或目录未找到:网站无法在所请求的端口访问。
注意 404.1 错误只会出现在具有多个 IP 地址的计算机上。如果在特定
IP 地址/端口组合上收到客户端请求,而且没有将 IP 地址配置为在该特
定的端口上侦听,则 IIS 返回 404.1 HTTP 错误。例如,如果一台计算
机有两个 IP 地址,而只将其中一个 IP 地址配置为在端口 80 上侦听,
则另一个 IP 地址从端口 80 收到的任何请求都将导致 IIS 返回 404.1
错误。只应在此服务级别设置该错误,因为只有当服务器上使用多个 IP
地址时才会将它返回给客户端。
404.2 文件或目录无法找到:锁定策略禁止该请求。
404.3 文件或目录无法找到:MIME 映射策略禁止该请求。
405 用于访问该页的 HTTP 动作未被许可。
406 客户端浏览器不接受所请求页面的 MIME 类型。
407 Web 服务器需要初始的代理验证。
410 文件已删除。
412 客户端设置的前提条件在 Web 服务器上评估时失败。
414 请求 URL 太大,因此在 Web 服务器上不接受该 URL。
500 服务器内部错误。
500.11 服务器错误:Web 服务器上的应用程序正在关闭。
500.12 服务器错误:Web 服务器上的应用程序正在重新启动。
500.13 服务器错误:Web 服务器太忙。
500.14 服务器错误:服务器上的无效应用程序配置。
500.15 服务器错误:不允许直接请求 GLOBAL.ASA。
500.16 服务器错误:UNC 授权凭据不正确。
500.17 服务器错误:URL 授权存储无法找到。
500.18 服务器错误:URL 授权存储无法打开。
500.19 服务器错误:该文件的数据在配置数据库中配置不正确。
500.20 服务器错误:URL 授权域无法找到。
500 100 内部服务器错误:ASP 错误。
501 标题值指定的配置没有执行。
502 Web 服务器作为网关或代理服务器时收到无效的响应。

你可能感兴趣的:(AJAX)