模拟jQuery简单封装ajax

 1 /*模拟jQuery的写法 (简单写法)*/
 2 var $={};
 3 /*ajax*/
 4 $.ajax = function (options) {
 5     /*
 6     * 请求
 7     * 1.请求接口    type    get post 默认的是get 决定是否设置请求头
 8     * 2.接口地址    url     不确定 字符串 如果用户没有传  默认的接口地址为当前路径
 9     * 3.是否是异步  async    默认的就是异步 true;false 是同步请求
10     * 4.提交数据    data    默认的是对象 {name:‘XXX‘,age:‘19‘} 默认是{}
11     *
12     * 响应
13     * 1.成功回调函数 success 代表的是一个函数 用来处理成功之后的业务逻辑的函数
14     * 1.1 字符串 xml json格式的字符串 数据转换
15     * 2.失败回调函数 error 代表的是一个函数 用来处理失败之后的业务逻辑的函数
16     * 2.1 返回一些错误信息
17     * */
18
19
20
21
22     /*处理默认参数*/
23     if(!options || typeof options != ‘object‘) return false;
24     /*如果没有传 使用默认的get方式提交*/
25     var type = options.type || ‘get‘;
26     /*如果没有传 使用默认的当前路径*/
27     var url = options.url || location.pathname;
28     /*强制 是false的时候就是同步  否则都是异步*/
29     var async = options.async === false?false:true;
30     /*如果没有就是空对象*/
31     var data = options.data || {};
32     /*对象是无法进行传输 {name:‘‘,age:‘‘}  拼接字符串  name=xzz&age=18*/
33     var dataStr = ‘‘;
34     for(var key in data){
35         dataStr+=key+‘=‘+data[key]+‘$‘;
36     }
37     dataStr = dataStr && dataStr.slice(0,-1);
38
39     /*ajax封装编程*/
40     /*初始化*/
41     var xhr = new XMLHttpRequest();
42     xhr.open(type,type == ‘get‘?url+‘?‘+dataStr:url,async);
43     /*请求头*/
44     if(type == ‘post‘){
45         xhr.setRequestHeader(‘Content-Type‘,‘application/x-www-form-urlencoded‘);
46     }
47     /*请求主体*/
48     xhr.send(type==‘get‘?null:dataStr);
49
50
51
52     /*响应*/
53     xhr.onreadystatechange = function () {
54         /*一定要完全完成通讯*/
55         if(xhr.readyState == 4){
56             if(xhr.status == 200){
57                 /*请求成功*/
58                 /*字符串 xml josn格式的字符串  数据转换*/
59                 /*获取响应类型*/
60                 var contentType = xhr.getResponseHeader("Content-Type");
61                 var result = null;
62
63                 if(contentType.indexOf(‘xml‘)>-1){
64                     /*xml*/
65                     result = xhr.responseXML;
66                 }else if(contentType.indexOf(‘json‘)>-1){
67                     /*json*/
68                     result = JSON.parse(xhr.responseText);
69                 }else{
70                     /*string*/
71                     result = xhr.responseText;
72                 }
73                 options.success && options.success(result);
74
75             }else{
76                 /*请求失败*/
77                 options.error && options.error({status:xhr.status,statusText:xhr.statusText});
78             }
79         }
80     }
81 };
82
83 /*get*/
84 $.get = function (options) {
85     options.type = ‘get‘;
86     $.ajax(options);
87 }
88 /*post*/
89 $.get = function (options) {
90     options.type = ‘post‘;
91     $.ajax(options);
92 }

注:简单写法,仅供参考。

时间: 2024-10-04 07:04:55

模拟jQuery简单封装ajax的相关文章

jQuery简单封装ajax,带logintoken

const URL = 'http://192.168.1.28:8081'; function ajax(params,success){ let token = sessionStorage.getItem('loginToken'); params._params.loginToken = token; $.ajax({ type:"post", url:URL+'/common/service.execute.json', headers:{"Content-Type

jQuery简单的Ajax调用示例

jQuery简单的Ajax调用示例 jQuery确实方便,下面做个简单的Ajax调用: 建立一个简单的html文件: <!DOCTYPE HTML> <html> <head> <script type="text/javascript" src="Public/js/jquery-easyui-1.3.1/jquery-1.8.2.min.js"></script> <script type=&qu

jQuery简单的Ajax调用

index.php 的代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <!--引入jQuery文件--> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript&

使用JavaScript和jQuery简单实现Ajax技术

Ajax的定义 Ajax被认为是(Asynchronous JavaScript and XML的缩写). 允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax. Ajax的工作原理 Ajax的核心是JavaScript对象XmlHttpRequest.XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户. 一.使用JavaScript实现Ajax技术 1.首先建立一个jsp页面,导入js页面并且新建一个测试按钮. <script typ

使用jquery再次封装ajax

$.fn.ajaxSend = function (type, url, postdata, onSuccess) { $.ajax({ async: false, url: url, type: type, data: postdata == null|| postdata == "" ? "" : postdata, datatype: "json", cache: false, contentType: "application/

原生JS模拟JQuery封装Ajax

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

JS/Jquery:jquery封装ajax请求。

jquery提供了ajax请求,但这个写起来很繁琐,所以我在项目里对其进行了简单封装,为了用起来方便嘛~~~~~ 以后每次都引入这个js文件就可以了: 下面是代码部分: base.js //ajax请求 var ajaxRequest = function () { }; ajaxRequest.prototype = { //初始化设置 url : '', dataType : 'json', data:'', //初始化ajax参数 setUp : function(){ $.ajaxSet

ajx技术解析以及模拟jQuery封装

1.后台处理程序 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String username = request.getParameter("username"); String password = request.getParameter("password&q

jQuery中对AJAX操作的封装函数

jQuery提供了6个简化AJAX操作的函数,每个都可以代替元素AJAX中的四步代码! (1)$('xxx').load()         jQuery对象函数 (2)$.get()                   jQuery全局函数 (3)$.post()                 jQuery全局函数 (4)$.getScript()          jQuery全局函数 (5)$.getJSON()           jQuery全局函数 (6)$.ajax()