gAjax.js
var gAjax = (function () {
    /*
        paramObj:{
            url: request url,
            method: GET or POST,
            encode: character,
            param: post param,
            isAsync: boolean,
            returnType: xml/text,
            onAjaxComplete: function
        }
    */
    var _send_ajax = function (paramObj) {
        var url, method, encode, httpRequest, param, isAsync, parser, returnType;
        var onAjaxComplete;
        url = paramObj.url;
        method = paramObj.method.toUpperCase();
        encode = paramObj.encode;
        if (method == 'GET')
            param = null;
        else if (method == 'POST')
            param = paramObj.param;
        isAsync = paramObj.isAsync;
        returnType = paramObj.returnType || "xml";
        onAjaxComplete = paramObj.onAjaxComplete;
        if (window.ActiveXObject) {//IE
            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } else {//FireFox,Chrome,Safari
            httpRequest = new XMLHttpRequest();
        }
        httpRequest.onreadystatechange = function () {
            ) {
                ) {
                    if (returnType.toUpperCase() == "XML") {
                        if (window.ActiveXObject) {//IE
                            parser = new ActiveXObject("Microsoft.XMLDOM");
                            parser.async = false;
                            parser.load(httpRequest.responseXML);
                        } else if (document.implementation.createDocument) {
                            try {//FireFox
                                parser = document.implementation.createDocument("", "", null);
                                parser.async = false;
                                parser = (new DOMParser()).parseFromString(httpRequest.responseText, "text/xml");
                            } catch (e) {//Chrome,Safari
                                var xmlhttp = new window.XMLHttpRequest();
                                xmlhttp.open("GET", httpRequest.responseText, false);
                                xmlhttp.send(null);
                                parser = xmlhttp.responseXML.documentElement;
                            }
                        }
                    } else {
                        parser = httpRequest.responseText;
                    }
                    onAjaxComplete.apply(_send_ajax, [parser]);
                } else {
                    alert("远程服务调用失败!");
                }
            }
        }
        httpRequest.open(method, url, isAsync);
        if (typeof encode != 'undefined')
            if (method == 'GET')
                httpRequest.setRequestHeader("Content-Type", "text/html;charset=" + encode);
            else if (method == 'POST')
                httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=" + encode);
        httpRequest.send(param);
    }
    return {
        sendAjax: _send_ajax
    }
})();

用法:

<script>
        function loadAjax() {
            gAjax.sendAjax({
                url:"Server.aspx",
                method:'POST',
                encode:'GBK',
                param:" + "&time=" + new Date(),
                isAsync: true,
                returnType: 'TEXT',
                onAjaxComplete:function(data){
                    alert(data);
                }
            });
        }
    </script>

兼容IE, Chrome的ajax function的更多相关文章

  1. Jquery判断离开页面时,通过Ajax更新数据(兼容IE,Chrome,FF浏览器)

    现在很多项目都有客户离开网页时,处理一些业务的需求.所以焦点就聚集在了如何获取页面离开事件. 以下是本人在一个项目中需要记录页面浏览时长的处理办法,测试兼容IE,Chrome,FF浏览器 代码如下: ...

  2. 设为首页 和 收藏本站js代码 兼容IE,chrome,ff

    设为首页 和 收藏本站js代码 兼容IE,chrome,ff //设为首页 function SetHome(obj,url){ try{ obj.style.behavior='url(#defau ...

  3. 让Chrome支持Ajax/$http方式读取本地文件

    在开发中经常写些小demo调试一下插件什么的 数据源又经常手动构造分离为一个单独的文件.用ajax或$http去访问时总是拒绝访问.这个时候可以给Chrome的快捷图标加启动参数,让浏览器允许js访问 ...

  4. 兼容ie的jquery ajax文件上传

    Ajax文件上传插件很多,但兼容性各不一样,许多是对ie不兼容的,另外项目中是要求将网页内容嵌入到桌面端应用的,这样就不允许带flash的上传插件了,如:jquery uploadify...悲剧 对 ...

  5. 监听HTML input输入框值的即时变化onpropertychange、oninput兼容IE,Chrome,FF,Opera等

    转自:http://blog.csdn.net/itchiang/article/details/7769337 要达到的效果 很多情况下我们都会即时监听输入框值的变化,以便作出即时动作去引导浏览者增 ...

  6. JS复制内容到剪贴板(兼容FF/Chrome/Safari所有浏览器)

    现在浏览器种类也越来越多,诸如 IE.Firefox.Chrome.Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了. 在FLASH 9 时代,有一个通杀所有浏 ...

  7. JS实现复制到剪贴板(兼容FF/Chrome/Safari所有浏览器)

    现在浏览器种类也越来越多,诸如 IE.Firefox.Chrome.Safari等等,因此现在要实现一个js复制内容到剪贴板的小功能就不是一件那么容易的事了. 在FLASH 9 时代,有一个通杀所有浏 ...

  8. 本地调试 Chrome支持Ajax跨域

    Ajax本身是不支持跨域的,跨域问题其实很简单,通过浏览器的相应设置可以完成两个不同的服务器或两个不同服务下的项目互相访问.希望大家给予评价及投票. 方法/步骤 1 首先谷歌快捷方式上右击,在下拉列表 ...

  9. js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)

    第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type=&qu ...

随机推荐

  1. MySQL · 性能优化 · 条件下推到物化表

    MySQL · 性能优化 · 条件下推到物化表 http://mysql.taobao.org/monthly/2016/07/08/ 背景 MySQL引入了Materialization(物化)这一 ...

  2. 号外号外:9月21号关于Speed-BI 《全国人口统计数据分析》开讲了

    引言:如何快速分析纷繁复杂的数据?如何快速做出老板满意的报表?如何快速将Speed-BI云平台运用到实际场景中?       本课程将通过各行各业案例背景,将Speed-BI云平台运用到实际场景中,通 ...

  3. log file switch (checkpoint incomplete)

    接手了一个新交接的库,alert日志频繁报告log file switch (checkpoint incomplete)事件 oracle文档解释: Waiting for a log switch ...

  4. 支持正则或通配符的hashmap

    RegexpKeyedMap http://wiki.apache.org/jakarta/RegexpKeyedMap RegexHashMap https://heideltime.googlec ...

  5. maven中下载jar包源码和javadoc

    1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...

  6. 01分数规划poj2728(最优比例生成树)

    Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 21766   Accepted: 6087 Desc ...

  7. 关于C语言链表的学习

    今天讲了一种非传统型的链表.听得不是太好. 到数据结构那一部分的时候.一定要好好听听.

  8. 。。。Spring框架总结(一)。。。

    Spring框架已经学习了两遍了,第一遍基本上忘得差不多了,现在开始复习第二遍的,也复习的差不多了,比之前懂了很多东西,今天就写下来,记录一下我滴小成果! 首先,在Spring框架中有两个重要的概念: ...

  9. 关于用php插入汉字到oracle中出现不乱码问题

    $conn = oci_pconnect("IBADMINTON", "5206576360", $db,'utf8'); 在代码中加入‘utf8’即可:   ...

  10. Python快速建站系列-Part.One-组装开发环境

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 源代码都在github上:SmallStudyStation 现在是个demo,但回来会租个服务器,等功能完善了放到服务器上挂着,域名jusot ...