ajax请求的封装
前端的工作,免不了要用到交互,请求后端的数据,可能大多人一直选择用jq封装好的方法直接使用,要知道封装这个事我们自己也可以的,今天给大家介绍一种封装方法,而且连跨域问题都不在话下,有了这个函数,是不是ajax请求so easy了呢!!下面就是:
function ajax(obj){//做网络请求的时候,参数以对象的形式传递进来,用的之后直接传参就ok啦!
//规定:obj里面包含属性
//1.url
//2.type-----get还是post
//3,data-----前端给后端传递的参数(前端传递的时候以对象的形式)
//4,回调函数----success;
//5,回调函数----error;
//6,跨域的回调函数--callback
//7,后台接受回调函数的key值
if(obj.callBack&&obj.key){
var sc=document.createElement("script");
document.documentElement.appendChild(sc);
sc.src=obj.url+"?"+obj.key+"=callBack";
return;
}
var ajaxObj=null;
if(window.XMLHttpRequest){
ajaxObj=new XMLHttpRequest();
}else{
ajaxObj=new ActiveXObject("Microsoft.XMLHTTP");
}
//检测状态的变化
ajaxObj.onreadystatechange=function(){
if(ajaxObj.readyState==4){
if(ajaxObj.status>=200&&ajaxObj.status<300||ajaxObj.status==304){
if(obj.success){
obj.success(JSON.parse(ajaxObj.responseText));
// obj.success(ajaxObj.responseText);
}else{
alert("您忘记了success函数!");
}
}else{
if(obj.error){
obj.error(ajaxObj.status);
}else{
alert("您忘记了error函数!!");
}
}
}
}
//type转化为小写,方便使用;当用户不传type的时候,默认为get;
var type=obj.type||"get";
type=type.toLowerCase();
var params="";//字符串
//判断是否传递了参数
if(obj.data){
for(var key in obj.data){
params+=(key+"="+obj.data[key]+"&");
}
params=params.slice(0,params.length-1);
}
//当type为get的时候
if(type=="get"){
ajaxObj.open(type,obj.url+"?"+params,true);
ajaxObj.send();
}else{
ajaxObj.open(type,obj.url,true);
ajaxObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajaxObj.send(params);
}
}
ajax请求的封装的更多相关文章
- 通用ajax请求方法封装,兼容主流浏览器
ajax简单介绍 没有AJAX会怎么样?普通的ASP.Net每次运行服务端方法的时候都要刷新当前页面. 假设没有AJAX,在youku看视频的过程中假设点击了"顶.踩".评论.评论 ...
- jQuery里面ajax请求的封装
为了避免ajax漫天飞,我们需要对jQuery的代码进行封装,封装代码: function api_request(name, params, cb, scope, async, el) { if ( ...
- Ajax基础之封装3
今天接着我们上篇博文的栗子,现在我来扩大一下需求,之前是点击按钮取出新闻,现在要实现每隔一段事件进行新闻的更新.这个时候,肯定是加一个定时器,然后每隔一段事件,再进行一次Ajax请求,既然要经常用到A ...
- 通过XMLHttpRequest,ActiveXObject实现ajax请求
今天学习了原生的ajax请求.我将涉及到的ajax请求方法封装成了一个对象: var xhr={ getXHR:function(){ var XHR = null; ...
- 封装的ajax请求
在做登录注册这类提交表单数据时,我们经常需要局部刷新网页来验证用户输入的信息,这就需要用到ajax请求,我们通常需要获取表单中的数据,发起ajax请求,通过服务程序,与数据库的数据进行比对,判断信息的 ...
- ajax请求原理及jquery $.ajax封装全解析
.ajax原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其中最关键的一步就是从服务器获得 ...
- 使用es6的then()方法封装jquery的ajax请求
使用场景: jsp页面中使用jquery的ajax请求比较频繁,以前vue框架的项目用过axios,所以就想着用then()封装一个公共请求的方法,这样每次请求就不用那么麻烦的写一大堆请求参数了. 示 ...
- 简单封装的ajax请求
简单封装了一个ajax请求,做一下统一处理,少写重复代码,只是一个初步的代码,没有经过优化. $.extend({ myAjax: function (option, rollBack) { var ...
- 基于jquery,ajax请求及自我终止的函数封装。
场景描述: 在我们平时的开发过程中,经常会遇到这样的情况.在搜索功能中进行模糊搜索或者联想关联. 这就要我们每次对输入框中的数据进行改动时,都要发送一次请求.当在短时间内多次操作改动时,问题就出现了. ...
随机推荐
- JavaScript刷新页面n种方法
window.location.href 属性 window.location.href=window.location.href;//刷新当前页面 asp.net 或 asp 利用此功能刷新页面 R ...
- ServletConfig 可以做啥
1.获得 servlet配置的servletname 2.获得servlet 配置的 getInitParameter("keyname") 3.获得servlet配置的 所有的 ...
- ABAP 读取销售订单抬头文本自建函数
FORM frm_read_txt USING vbeln LIKE vbak-vbeln CHANGING txt . DATA :lc_name ...
- Vim基础操作
在正式使用Vim之前,先来点开胃菜,学习下Vim中一些常用的命令,有了这些基本命令,才能让我们使用Vim更加得心应手,加快工作的效率~ 注意:接下来将要介绍的命令主要是用在Vim的Normal模式下. ...
- 2. iOS程序的生命周期
程序启动-生命周期 来自: QQ: 853740091 1.首先讲解UIApplication对象 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个 ...
- React学习笔记-1-什么是react,react环境搭建以及第一个react实例
什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似. ...
- 错误:ORA-28009: connection as SYS should be as SYSDBA or SYSOPER 的解决办法--转载但验证过后可以用
今天,用iSQL*Plus 以sys用户连接数据库的时候报ORA-28009:connection as sys should be as sysdba or sysoper的错误,不知道是怎么回事, ...
- 【Java EE 学习 34】【struts2学习第一天】
一.struts2简介 struts2是一个用来开发MVC应用程序的框架.它提供了Web应用程序开发过程中的一些常见问题的解决方案. 1.struts2的作用域范围:三层架构当中的第一层,相当于MVC ...
- 在Jenkins中获取GitHub对应Repository的Resource Code
1):Install Jenkins 请看如下链接: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins 2):Install ...
- pandas 学习(1): pandas 数据结构之Series
1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...