一步一步理解Ajax(二)

简介: ajax方法:通过 HTTP 请求加载远程数据get方法: 通过远程 HTTP GET 请求载入信息post方法:通过远程 HTTP POST 请求载入信息1、创建XMLHttpRequest对象 function createXHR() {            return window.

ajax方法:通过 HTTP 请求加载远程数据
get方法: 通过远程 HTTP GET 请求载入信息
post方法:通过远程 HTTP POST 请求载入信息

1、创建XMLHttpRequest对象

function createXHR() {
            return window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
}

2、将键值对转换成拼接串
      function params(data) {
            var a = [];
            for (var i in data) {
                a.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i]));
            }
            return a.join("&");
        }

3、封装ajax方法
    参数
  method       请求方法      get和post          默认get
  data            键值对         {key:value}
  url               链接地址
  cache           缓存           true   和  false    默认true带缓存
  success       成功           
  error           异常
  function ajax(args) {
            var xhr = createXHR();
            var data = params(args.data);
            if (/get/i.test(args.method)) {    //  当为get方式时  将data直接拼接到url后
                args.url += "?" + data;
            }
            if (!args.cache) {      //无缓存
                if (args.url.indexOf("?") < 0) {   //当无参数data
                    args.url += "?";
                }
                args.url += "&" + (new Date());  // Math.random();
            }
            xhr.open(args.method, args.url, true);
            xhr.onreadystatechange = function () {
                if (4 == xhr.readyState && 200 == xhr.status) {
                    args.success(xhr.responseText, xhr.responseXML);
                }
                else {
                    args.error();
                }
            }
            if (/post/i.test(args.method)) {
                xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xhr.send(data);
            }
            else {
                xhr.send();
            }
        }

4、这是一个简单的 get方法 请求功能以取代复杂 ajax方法 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用ajax方法。
       function get(url, data, fn) {   
            ajax({ "method": "get", "url": url, "data": data, "success": fn });
        }

5、这是一个简单的 post方法 请求功能以取代复杂 ajax方法 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用ajax方法。
       function post(url, data, fn) {
            ajax({ "method": "post", "url": url, "data": data, "success": fn });
        }
目录
相关文章
|
前端开发 JavaScript 数据格式
一步一步理解Ajax(三)
Ajax一般应用于户表单数据的验证,局部更新,如分页等等Ajax的优点与缺点优点:1、异步处理功能,可以选择性提交数据;2、局部更新;3、较少服务器负担;4、更快的响应速度;5、减轻带宽压力。缺点:1、局部更新不支持后退功能和添加到收藏夹功能;2、搜索引擎不支持Ajax的抓取;3、跨平台性不好;4、并非所有浏览器都支持Ajax;5、浏览器对Ajax的支持程度不同。
947 0
|
JavaScript 前端开发 数据安全/隐私保护
一步一步理解Ajax(一)
Ajax是Asynchronous Javascript And XML的缩写。作用:通过Ajax可以使用Javascript语句来调用XMLHttpRequest对象,直接与服务器进行通讯,可以在不重载页面的情况下与服务器交换数据。
892 0
|
前端开发 PHP 容器
ajax的理解
function goe_local(){ //ip同步到服务端    $.ajax({                                           url:'ajax_ip.
684 0
|
6月前
|
XML 前端开发 JavaScript
什么是Ajax和jquery
什么是Ajax和jquery
43 0
|
5月前
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
60 0
|
5月前
|
敏捷开发 JavaScript 前端开发
❤❤❤【Vue.js最新版】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本❤❤❤
❤❤❤【Vue.js最新版】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本❤❤❤
|
4月前
|
前端开发 JavaScript
Jquery ajax捕获错误信息
Jquery ajax捕获错误信息
16 0
|
4月前
|
JSON 缓存 前端开发
Jquery中AJAX的应用
Jquery中AJAX的应用
43 0
|
5月前
|
JSON 前端开发 JavaScript
jQuery中ajax的使用
jQuery中ajax的使用
|
5月前
|
XML JavaScript 前端开发
【Web智能聊天客服】之JavaScript、jQuery、AJAX讲解及实例(超详细必看 附源码)
【Web智能聊天客服】之JavaScript、jQuery、AJAX讲解及实例(超详细必看 附源码)
54 0