javascript中Ajax的简单封装

 GET方式的在线:DEMO

 POST方式在线:DEMO

// 1、封裝AJAX函數
function nativeAjax(option,success,error){
    // 定义domain,方便环境切换
    var domain='https://' + window.location.host + '/';
    var url=domain+option.urlStr;
    var type=option.ajaxType;
    var data=option.ajaxData;
    var xhrRequest=null;
    if(window.XMLHttpRequest){
        xhrRequest = new XMLHttpRequest();
    } else {
        xhrRequest = new ActiveXObject('Microsoft.XMLHTTP')
    }
    var str="";
    xhrRequest.open(type,url,true);
    if(type==="POST"&&data!=null){
        xhrRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=utf-8");
        for(var key in data){
            str+='&'+key+'='+data[key];
        }
str=str.slice(1);
    }else{
str=null;
}
    xhrRequest.onreadystatechange=function(){
        if(xhrRequest.readyState==4){
            if(xhrRequest.status==200){
                // 1.1、格式化返回的数据
                var responseData=JSON.parse(xhrRequest.responseText);
                // 1.2、这里操作数据--------
                success(responseData);
            }else{
                // 1.3、没成功返回HTTP状态码
                error(xhrRequest.status);
            }
        }
    }
    xhrRequest.send(str);
}
// 2、POST:定義請求參數
var postOption={
    ajaxType:"POST",
    urlStr:"v2/html/broke/get_broke_ranked_info",
    ajaxData:{
        "HTTP_USER_TOKEN":token,
        "HTTP_USER_UID":pfid,
        "anchor_pfid":anchor_pfid,
        "broke_pfid":pfid,
        "date":date
    }
}
// 3、调用AJAX
nativeAjax(postOption,function(data){
    // 3.1、请求成功回调
    console.log(data);
},function(error){
    // 3.2、请求失败回调,返回HTTP状态码
    console.log(error);
});

//4、GET:定义请求参数
var getOption={
    ajaxType:"GET",
    urlStr:"v2/html/broke/get_broke_ranked_info",
    ajaxData:null
}
Ajax(getOption,function(data){
    // 成功函数
    console.log(data);
},function(error){
    // 失败返回HTTP状态码
    console.log(error);

});
// 使用说明
// 一、option必须
option={
    //1、ajaxType必须:"GET"或者"POST"
    ajaxType:"",
    //2、urlStr必须:"string类型"
    urlStr:"",
    //3、必须:POST时候为object{key:value},GET的时候直接为:null
    ajaxData:null
}
// 二、success请求成功回调必须
// 三:error请求失败回调必须

 

其他:

关于xhrRequest.readyState请参考MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/readyState

时间: 2024-08-04 01:50:49

javascript中Ajax的简单封装的相关文章

用原生JS对AJAX做简单封装的实例代码_javascript技巧

首先,我们需要xhr对象.这对我们来说不难,封装成一个函数. var createAjax = function() { var xhr = null; try { //IE系列浏览器 xhr = new ActiveXObject("microsoft.xmlhttp"); } catch (e1) { try { //非IE浏览器 xhr = new XMLHttpRequest(); } catch (e2) { window.alert("您的浏览器不支持ajax,请

JavaScript中cookie工具函数封装的示例代码_javascript技巧

一. 语法 1.1 获取当前页面的所有cookie: var allCookies = document.cookie; allCookies 是一个字符串,其中包含了以分号分隔的cookie列表字符串 (即 key=value 键值对). 1.2 写一个新cookie: document.cookie = updatedCookie; updatedCookie是一个键值对形式的字符串.只能用这个方法一次设置或更新一个cookie,而且写入并不是覆盖,而是添加.例如: document.coo

javascript中AJAX用法实例分析_javascript技巧

本文实例讲述了javascript中AJAX用法.分享给大家供大家参考.具体分析如下: 兼容地获得XMLHttpRequest对象: var xhr = null; if(window.XMLHttpRequest){ //非IE浏览器 xhr = window.XMLHttpRequest; }else if(window.ActiveXObject){ //IE浏览器 try{ //高版本,受msxml3.dll+支持 xhr = new ActiveXObject("Msxml2.XMLH

javascript中ajax简单投票示例(js版本)

注意:我只是简单的用了Cookie来防止重复投票,肯定可以作弊了,最保险的还是登录投票.    代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml

关于Javascript中ajax应用详解

1:定义AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术. Ajax 不是一种单一的技术.实际上是几种技术,每种技术都各有其特色,这些技术以全新强大方式融合在一起.Ajax 包含: 使用 XHTML 和 CSS 基于标准的呈现 使用文档对象模型的动态显示和交互 使用 XML 和 XSLT 的数据交换和操作 使用 XMLHttpRequest 的异步数据检索 将它们绑定到一起的 J

JavaScript中的Primitive对象封装介绍_javascript技巧

JavaScript中,string.number.boolean均为primitive基本类型,也即字符串.数值.布尔值并不是以对象的形式而存在的.不过,由于需要对这三种primitive类型值进行操作,因此JavaScript会自动封装这三种类型的值,使其作为对象而拥有属性与方法.以string为例,这种封装过程如下: 1.当JavaScript遇到对string值进行属性访问或者方法调用时,会调用new String(字符串值)自动将该string封装成一个String对象. 2.Java

关于Javascript中Ajax缓存问题

AJAX缓存本意是为了提高AJAX的效率,减轻服务器的压力:但如果使用不当就有可能导致出现意料之外的结果.如何禁止Ajax的缓存,解决办法有如下几种: 1.在服务端加 header("Cache-Control: no-cache, must-revalidate");(如php中) 2.在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0"); 3.在ajax发送请求前加

javascript中AJAX 跨域问题解决方法

最近在开发过程中,使用ajax去异步调取图片.在开发中这个功能没什么问题,可以后来提测,重新部署之后就有问题了,这就是ajax的跨域问题. ajax本身是不支持跨域的,这是由于javascript的同源策略所导致.但是我们可以通过其他方法来解决ajax的跨域问题. 1  由于我们是利用了jquery来写的ajax,我们一开始是准备 利用jsonp来解决的,客户端类似下面写法  代码如下 复制代码 $.ajax({     type : "get",     async:false,  

javascript中ajax入门篇

AJAX 是啥? AJAX (Asynchronous JavaScript and XML, 异步 JavaScript 及 XML 技术) 是个新词,但内涵是两个存在已有一段时间的 JavaScript 功能.这两种功能以往一直被忽略,在 Gmail.Google suggest 及 Google Maps 出现后才一举成名天下知. 这两个 JavaScript 功能 是: * 在不重新读取页面的情况下对伺服器送出要求(request) * 解析.使用 XML 文件 第一步 – 怎么发出 X