手动封装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&q…
最近在做一个单页应用,node和浏览器仅通过json传输数据,因为是只有自己用等于是锻炼一下自己,所以也不用考虑seo的问题,node端我已经写好了,但是浏览器端想要用ajax原生太麻烦,用封装的函数又需要引入angular,jquery等大型框架.我写node比较多,觉得用什么功能就引入什么功能,不太喜欢用大而全的框架,所以只好手动封装一下ajax的操作 ajax的xhr对象有7个事件 onloadstart                    开始send触发 onprogress    …
使用原生 的JS封装 Ajax,实现 仿JQuery的Ajax,post,get三种异步请求方式: var MAjax = { //根据浏览器创建异步对象 createXhr: function () { //经测试:IE7.0及以上版本的IE,两种异步创建的两种方式都支持 //如果XMLHttpRequest存在,则是IE7.0及其它内核,则直接创建异步对象(!==非全等于, === 全等于) if (typeof XMLHttpRequest !== 'undefined') { //相当!…
在我们请求数据时,完成页面跨域,利用原生JS封装的ajax和jsonp: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> //ajax 和jsonp 跨域的封装 var $={ //封装a…
即 Asynchronous [e'sɪŋkrənəs] Javascript And XML,AJAX 不是一门的新的语言,而是对现有技术的综合利用.本质是在HTTP协议的基础上以异步的方式与服务器进行通信. XMLHttpRequest可以以异步方式的处理程序,浏览器内建对象,用于在后台与服务器通信(交换数据) ,由此我们便可实现对网页的部分更新,而不是刷新整个页面. 封装ajax工具函数 $.ajax = function(options){ if(!options) return fal…
post function createXHR() { if (typeof XMLHttpRequest != 'undefined') { return new XMLHttpRequest(); } else if (typeof ActiveXObject != 'undefined') { var version = [ 'MSXML2.XMLHttp.6.0', 'MSXML2.XMLHttp.3.0', 'MSXML2.XMLHttp' ]; for (var i = 0; ver…
封装ajax原理 首先处理 用户如果不传某些参数,设置默认值 type默认get 默认url为当前页 默认async方式请求 data数据默认为{} 处理用户传进来的参数对象 遍历,拼接成key=value&key=value形式,加入数组 通过XMLHttpRequest对象创建xhr,早期的IE浏览器不支持XMLHttpRequest对象,通过var xhr = new ActiveXObject('Msxm12.XMLHTTP')创建 判断用户请求的方法 get:将数据拼接在url后面,…
<script> //封装ajax // 函数名 ajax // 函数的参数 // url: 请求的地址 // type: 请求的方式 get /post // data: 要上传的数据 要求是键值对的形式 // 函数的返回值 没有返回值 // 增加的功能: // 1. 如果没有传请求的地址,就没有必要执行后面的代码 // 2. 默认是get, 如果传post,则发post请求 // 3. 不需要再上传键值对的字符串了name=zs&age=18&sex=m // 而是上传一个…
支持get.post请求 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>自定义封装ajax</title> </head> <body> </body> </html> <script type="text/javascript"> function ajax(o…
思考一下: 通常我们在使用ajax来发送接口请求时,每一次都会调用ajax固定的元素,比如data.url.method.success.error等.那么我们想一下能不能先把ajax封装起来,在每次发送请求时只需要把参数传入,实现封装函数的调用就可以. 这样的话,每次请求都会变得简单优化,节省了很多行冗余的代码,不是嘛.....    接下来,我把代码实例写在下面. 1.假设现在需要发送一个接口请求. var fun;//定义一个载体. fun.viewProducts(id).then((r…
http://blog.sucaijiayuan.com/article/89 jquery框架的ajax方法固然好用,但是假如某天我们的项目不能引入jquery或项目需求很简单,没有很多交互功能,只需要ajax,这时引入jquery库会造成资源浪费,也会显得页面臃肿.这时我们就需要用原生JS写一个ajax函数了. /* 封装ajax函数 * @param {string}opt.type http连接的方式,包括POST和GET两种方式 * @param {string}opt.url 发送请…
写在前面的话,如果中间有什么不明白的,请先看封装ajax框架!(前言篇) 1.添写一个封闭函数 (function(){})(); 在一个项目中,可能会引用多个js框架,如果函数名相同,会有命名冲突,所以这里使用封闭函数. 2.封装一个函数,用于dom元素的获取 但$是局部变量,外面不能直接使用,所以需要添加window.$ = $: 表示为全局对象window添加一个"$"的属性,这个属性的值是当前局部变量$的值. 所以在外部,如果想获取某个dom元素,可以直接:$("co…
Ajax技术就是利用javascript和xml实现异步交互的功能. 首先先来介绍一下Ajax相关知识点,如果这些你都会的话,请直接跳转到封装ajax框架!(代码篇) 一.Ajax对象的创建 1.创建Ajax对象的方式 a.第一种方式是针对IE浏览器 b.第二种方式针对w3c:在IE的高版本(IE8+),已经支持了XMLHttpRequest类 2.解决兼容性 a.创建公共文件 public.js b.在需要使用ajax对象的页面中,包含以上js文件 二.ajax对象的相关属性和方法 方法: 1…
为什么需要封装呢?因为用的多,我想将其封装成函数,当我想用它时,只需将那个函数对应的js文件引入即可,而不要重复写很多相同代码,利于开发效率的提高. 无论是$.ajax或$.post.$.get等,在开发中是经常用到的.再比如一些前端框架,例如easyui.ext.js等,ajax也是封装的. 编程的世界,封装无处不在. 具体js代码如下: /** * 增删改通用ajax请求 * @param type * @param url * @param datatype * @param conten…
Jquery封装ajax   Load方法     <!-- 将jquery.js导入进来 -->     <script type="text/javascript" src="js/jquery-1.7.2.js"></script>     <script type="text/javascript">     $(function(){         $("a").cl…
封装ajax工具函数 首先要思考:1.为什么要封装它?提高开发效率2.把一些不确定的情况考虑在其中 a. 请求方式 b. 请求地址 c. 是否异步 d. 发送参数 e. 成功处理 f. 失败处理3.确定参数 a. Type--请求方式 get (get/post) b. Url--请求地址 默认当前地址 字符串 c. Async--是否异步 true (true/false) d. Data--发送的数据 {} 对象{name:xx} e. Success--成功回调 function 函数 函…
为什么要封装ajax,因为…… for(var i=0;i<20;i++){ $.ajax(……) } 的时候,整个页面都卡死了,于是,我开始找答案. 后来,找到了,就是jquery的ajax属于全局,当上文不执行完毕,其他的都动不了.于是乎有了封装ajax,将ajax作为局部使用,即可解决掉. function ajax(options) { options = options || {}; options.type = (options.type || "GET").toUp…
项目中有时候用不到jq,需要了解xmlhttp原理,自己写一套函数请求和发送数据! /* 封装ajax函数 * @param {string}opt.type http连接的方式,包括POST和GET两种方式 * @param {string}opt.url 发送请求的url * @param {boolean}opt.async 是否为异步请求,true为异步的,false为同步的 * @param {object}opt.data 发送的参数,格式为对象类型 * @param {functi…
原生JavaScript 封装ajax   function myajax(options){ //新建一个局部对象 用来存放用户输入的各种参数 var opt={ type:options.type||"get",//获取用户输入的传输方法,可选,不写为get data:options.data||"",//获取用户输入的数据 dataType:options.dataType||"",//获取用户输入的数据类型比如json 或者xml url…
目录 引言 封装ajax 案例:使用自封装ajax 案例:动态加载瀑布流 跨域 引言 对于Ajax现在相信大家已经不会陌生了,无论是原生的XMLHttpRequest方式发送还是通过jQuery框架中提供的$.ajax方式.但是从实际工作角度来说并不是所有的公司都喜欢采用上面两种方式进行请求的发送. 其原因在于: (1)原生的方式过于繁琐,并且大量重复代码. (2)jQuery的方式虽然方便,但必须引入jQuery框架, 而框架中不是所有的内容都能用到,这就造成了大量无用代码的堆积.占用资源 因…
Promise 封装ajax 成链式结构: var url = 'http'; function(method, url) { return new Promise(function(res, ret) { var oReq = new XMLHttpRequest(); oReq.onload = function() { var data = oReq.response; data = JSON.parse(data); res(data); } oReq.onerror = functio…
方法一:(类似jQuery的封装方法) 1.ajax函数封装: /* *author: Ivan *date: 2014.06.01 *参数说明: *opts: {'可选参数'} **method: 请求方式:GET/POST,默认值:'GET'; **url: 发送请求的地址, 默认值: 当前页地址; **data: string,json; **async: 是否异步:true/false,默认值:true; **cache: 是否缓存:true/false,默认值:true; **cont…
常用的ajax请求方法封装 /** * ajax请求的封装代码 */ function ajaxPost(url, params, cb) { $.ajax({ type : 'post', url : url, data : params, cache : false, success : function(data) { cb(data); }, error : function(err) { alert("服务器异常"); } }); } function ajaxGet(url…
/* 封装ajax函数 * @param {string}opt.type http连接的方式,包括POST和GET两种方式 * @param {string}opt.url 发送请求的url * @param {boolean}opt.async 是否为异步请求,true为异步的,false为同步的 * @param {object}opt.data 发送的参数,格式为对象类型 * @param {function}opt.success ajax发送并接收成功调用的回调函数 */    fu…
http状态码406是服务器无法根据客户端请求的内容特性完成请求 //整站功能方法库封装ajax请求,这里只针对post var methods = { //全站ajax请求状态处理 ajax: function (url, data, successCallback, errorCallback) { $.ajax({ "type": "post", "url": AJAXURL + url, "async": true,…
//封装ajax function ajax(obj) { //创建xhr对象; var xhr = new XMLHttpRequest(); obj.method = obj.method.toUpperCase(); //异步调用 if (obj.async) { //监听响应状态 xhr.onreadystatechange = function() { if (xhr.readyState == 4) { callback(); } }; } //启动HTTP请求 xhr.open(o…
一.概念 1. $on("事件名称",回调函数) 事件绑定,一个事件名称上面可能绑定多个函数 2. $emit("事件名称",需要传递的值) 事件触发时,会触发当前事件身上所有的函数 3. $off("事件名称",[需要解绑的函数]) 事件解绑时,若指定解绑函数则只解绑相应函数,否则解绑全部 二.手动封装on,emit,off事件在vue中的作用 |  在vue中进行非父子组件传值时,我们可以通过在vue的原型上添加一个公共的vue实例,组件之间…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>封装属于自己的AJAX类库</title> </head> <body> <script> //自执行函数 ~function(){ class ajaxClass{ //=>AJAX四步操作:send ajax i…
抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正确的地方,还望指正^_^ 一.Ajax核心,创建XHR对象 Ajax技术的核心是XMLHttpRequest对象(简称XHR),IE5是第一款引入XHR对象的浏览器,而IE5中的XHR对象是通过MSXML库中的一个ActiveX对象实现的,因此在IE中可能有3个版本,即MSXML2.XMLHttp.…
由于项目中需要在提交ajax前设置header信息,jquery的ajax实现不了,我们自己封装几个常用的ajax方法. jQuery的ajax普通封装 var ajaxFn = function(uri, data, cb) { $.ajax({ url: uri, type: 'POST', dataType: 'json', data: data, }) .done(cb) .fail(function() { console.log("error"); }) .always(f…