AJAX总结一

AJAX总结

  • 电脑系统 windows10 专业版
  • 在开发的过程中,我们根据需求可能会使用到 ajax,下面是我对ajax的一些总结,希望对大家有所帮助!

作用:局部异步刷新网页

  • 异步请求:请求数据的时候不会影响页面的其他操作
  • 请求分两种
  • 异步
  • 同步
  • 前后端交互的方式

1、form(表单提交):

2、标签访问(src href)

3、AJAX

AJAX的同步请求步骤

1、创建请求对象

var xhr; if(window.XMLHttpRequst){ xhr=new XMLHttpRequst(); }else{ //IE 5 6 7兼容 xhr=new ActiveXObject('Microsoft.XMLHTTP'); }

2、启动请求

open(参数一,参数二,参数三):用于设置请求方式和地址

参数一:请求方式

参数二:请求的url

参数三:是否异地发送,默认为true(异地),false为同步

注意:open()的方法只是设置相关的请求信息,并不会真正发起请求

//同步请求 xhr.open('get',"http://localhost/self/AJAX-1/server.php?un=" + $("#user")\[0\].value + "&ps=" + $("#pass")[0].value",false); //异步请求 xhr.open('post',"",true)

3、发送请求

send() 发送请求

参数要传输给后台的数据,如果是get请求参数为null(不建议省略该参数,低版本火狐浏览器会报错)

xhr.send(null);

4、请求成功之后

status:http请求状态码

1XX:信息类状态,收到请求,正在处理

2XX:成功类状态,成功处理完成

3XX:重定向类状态,求情地址发生变化(304代表读缓存文件)

4XX:客户端错误,

5XX:服务器端错误,服务器识别不出信息,不能对请求作出处理

//同步请求 if(xhr.status >= 200 && xhr.status < 300 || 304 == xhr.status){ responseText//作为响应主体反映(后台返给我们的数据) responseXML//如果响应的数据类型为text/xml或者application/xml,此属性中保存 //后台传输进来的数据 }

异步请求

readyState:请求的状态

属性值

1,代表请求建立,还没有发出去

2,代表请求已经发送,正在处理中

3,代表请求处理中,已经拿了部分数据

4,代表请求完成,拿到了全部数据

xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status >=200 && xhr.status < 300 || xhr.status == 304){ //请求成功 console.log(xhr.responseText) }else{ console.log('请求失败'); } } }

AJAX的异步请求步骤

1、创建请求对象

var xhr; if(window.XMLHttpRequst){ xhr=new XMLHttpRequst(); }else{ //IE 5 6 7兼容 xhr=new ActiveXObject('Microsoft.XMLHTTP'); }

2、设置请求

//同步请求 xhr.open('get',"http://localhost/self/AJAX-1/server.php",false); //异步请求 xhr.open('post',"http://localhost/self/AJAX-1/server.php")

3、设置请求头

xhr.setRequestHeader('CONTENT-TYPE','application/x-www-form-urlencoded');

4、发起请求

var parms="un"+$("#user")\[0\].value + "&ps=" + $("#pass")[0].value; //un=123&ps=123 xhr.send(parms);

5、处理数据

//同步请求 if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){ console.log(xhr.responseText); }else{ console.log('请求失败'); }

异步请求

xhr.onreadystatechange = function() { if (4 == xhr.readyState) { if (xhr.status >= 200 && xhr.status < 300 || 304 == xhr.status) { // 请求成功 $("#showDiv")\[0\].innerHTML = xhr.responseText; } else { // 请求失败 $("#showDiv")[0].innerHTML = "请求失败"; } } }

AJAX跨域

同域:协议、域名、端口号 完全一致称为同域。

协议:http,https

域名:一级域名,二级域名,三级域名(数字越大范围越大)

端口号:8080,443等

https://www.oa.liangzi.com:8080

https: 协议

oa:三级域名

liangzi:二级域名

com: 一级域名

同源策略:

JS规定,协议,域名,端口号 一致即为同域(同源),可以相互访问,即使后面的路径不相同,也是同源

为什么要有同源策略?

防止黑客通过JS脚本,恶意获取用户的账户和密码(例如:通过 iframe 仿制银行网页)

跨域:

前端通过AJAX向服务器请求数据时,都需要考虑和注意跨域问题

注意:只有JS中的AJAX才需要考虑跨域,像 ,,

你可能感兴趣的:(ajax)