原生js与jquery实现ajax
2017-02-10 10:43
519 查看
一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢?
JQuery提供的Ajax方法:
原生js实现Ajax方法:
注释:
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 函数就会被执行。
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"); // 发送信息至服务器时内容编码类型 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 函数就会被执行。
相关文章推荐
- Ajax(原生js实现、jQuery实现、跨域)
- 原生js方式实现ajax,并仿jquery方式简单调用
- 原生js和jQuery的AJAX实现
- Jquery揭秘系列:ajax原生js实现详解(推荐)
- 原生JS与jQuery对AJAX的实现
- 原生js实现对Ajax的封装(模仿jquery)
- 原生js实现对Ajax的封装(仿jquery)
- 习惯了使用jQuery的ajax方法,看看原生js使用xmlhttpRequest实现ajax请求
- 原生javascript和jquery实现简单的ajax例子
- js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
- $.ajax 和 jquery.form.js实现表单异步提交
- 【Javascript】原生js实现ajax功能
- JavaScript Tag标签切换实现的几种方法 原生js + jquery
- 转:jquery实现tab切换效果及js css ajax推荐
- 一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
- 用Ajax+js+jQuery实现无闪烁定时刷新页面 定时刷新
- Jquery揭秘系列:ajax原生js实现
- 不用JQuery,原生Javascript实现Ajax功能及相关知识点
- 通过原生js的ajax或jquery的ajax获取服务器的时间
- js(jquery)与ajax结合实现无刷新操作