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. ucenter 客户端里的自动方法

    <?php /** * UCenter 应用程序开发 Example * * UCenter 简易应用程序,应用程序有自己的用户表 * 使用到的接口函数: * uc_authcode() 可选, ...

  2. C# WebSocket 服务端示例代码 + HTML5客户端示例代码

    WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...

  3. Java 静态类 static

    静态的方法是非虚方法(Java中的非虚方法有private,final,static,构造器,非虚方法无需根据具体的对象遍历方法区的方法表,决定调用关系) 也就是说,对于静态类型方法的调用,是其声明类 ...

  4. django 分页(2) 使用类 页码显示

    django 分页显示页码 views.py 显示11页码 ) < 起始位置 - 10总页数 else 总页数 > IF 当前页 小于 起始位置 结束页 IF 当前页 大于 IF 如果结束 ...

  5. Windows 7 / Windows 10 安装 IPX/SPX

    以我的系统为例: Windows 7/10 x64 首先下载 NWLINK IPX/SPX 驱动(这是 Microsoft 对 IPX/SPX 的实现.) http://pan.baidu.com/s ...

  6. 新的三种EBS类型解析

    就在前两天,创建EBS的之后页面发生了点变化,出现三种新的类型: General Purpose (SSD) Volumes Provisioned IOPS (SSD) Volumes Magnet ...

  7. 导出iPhone中安装的APP的iPA文件

    1.让iPhone连接电脑,打开iTunes,选择本电脑,然后点立即备份. 2.完成上一步的操作之后,选择应用,在iTunes中就会列出你从App Store中下载的应用,自己连接真机调试的应用是没有 ...

  8. iOS中scrollview是否要回弹

    1. @property(nonatomic) BOOL bounces //当滚动到内容边缘是否发生反弹,default is YES.2. @property(nonatomic) BOOL al ...

  9. C++Primer 第二章

    //1.程序尽量避免依赖于实现环境的行为.比如:如果将int的尺寸看成一个确定不变的已知值,那么这样的程序就称为不可移植的. typedef int int32; //使用类似的typedef,可以有 ...

  10. SQL语句执行时间测试

    select getdate()--开始执行时间   要执行的SQL语句 select getdate() --结束时间