码迷,mamicode.com
首页 > Web开发 > 详细

原生js实现Ajax

时间:2016-03-30 23:43:46      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

    一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢?

    JQuery提供的Ajax方法:

 1 $.ajax({
 2   url: ,
 3   type: ‘‘,
 4   dataType: ‘‘,
 5   data: {
 6          
 7   },
 8   success: function(){
 9          
10   },
11   error: function(){
12          
13   }
14 })

  原生js实现Ajax方法:

 1 var Ajax={
 2     get: function (url,fn){
 3         var obj=new XMLHttpRequest();  // XMLHttpRequest对象用于在后台与服务器交换数据          
 4         obj.open(‘GET‘,url,true);
 5         obj.onreadystatechange=function(){
 6             if (obj.readyState == 4 && obj.status == 200 || obj.status == 304) { // readyState==4说明请求已完成
 7                 fn.call(this, obj.responseText);  //从服务器获得数据
 8             }
 9         };
10         obj.send(null);
11     },
12     post: function (url, data, fn) {
13         var obj = new XMLHttpRequest();
14         obj.open("POST", url, true);
15         obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // 设置HTTP头部信息
16         obj.onreadystatechange = function () {
17             if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) {  // 304未修改
18                 fn.call(this, obj.responseText);
19             }
20         };
21         obj.send(data);
22     }
23 }

注释:

1,open() 方法需要三个参数:

 第一个参数定义发送请求所使用的方法(GET 还是 POST)。与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,请使用 POST 请求:

  • 无法使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(POST 没有数据量限制)
  • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

 第二个参数规定服务器端脚本的 URL(该文件可以是任何类型的文件,比如 .txt 和 .xml,或者服务器脚本文件,比如 .asp 和 .php (在传回响应之前,能够在服务器上执行任务))。

 第三个参数规定应当对请求进行异步地处理(true(异步)或 false(同步))。

2,send() 方法可将请求送往服务器。

3,onreadystatechange 属性存有处理服务器响应的函数。

4,readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被执行。

    通过学习对XMLHttpRequest对象又熟悉了一些,哈哈

原生js实现Ajax

标签:

原文地址:http://www.cnblogs.com/colima/p/5339227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!