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. zabbix配置发送报警邮件

    配置邮件分为两种情况: 第一种:使用远端邮件服务器发送报警邮件 Linux系统版本:CentOS6.5-64 下载mailx: http://nchc.dl.sourceforge.net/proje ...

  2. (转)linux运行tomcat时JRE_HOME显示不对怎么办?

    PS:以前也没出现这些问题,重装了一下系统,感觉什么都让我撞上了.Using CATALINA_BASE:   /usr/share/tomcat7Using CATALINA_HOME:   /us ...

  3. PHP登陆Session验证

    关键字:PHP Session 登陆 验证 本文地址:http://www.cnblogs.com/txw1958/p/php-login-check-session.html 首先,在MySQL数据 ...

  4. php 模拟表单提交

    <?php $username = "******"; $password = "*****"; $tel = "*****"; $p ...

  5. [BS-02] iOS数组、字典、NSNumber 新写法—— @[]、@{}

    IOS数组.字典.NSNumber 新写法—— @[].@{}   //标准写法 NSNumber * number = [NSNumber numberWithInt:]; NSArray * ar ...

  6. 为什么Button点击了没反应,反而其他事件反应了

  7. c#异步调用

    首先来看一个简单的例子: 小明在烧水,等水烧开以后,将开水灌入热水瓶,然后开始整理家务 小文在烧水,在烧水的过程中整理家务,等水烧开以后,放下手中的家务活,将开水灌入热水瓶,然后继续整理家务 这也是日 ...

  8. JavaScript----分层导航 滚动事件

    分层导航 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  9. 20145207 《Java程序设计》第二周学习总结

    开源中国的代码托管 不算调查问卷的话,这是第二篇博客,怎么说呢……感觉好麻烦!哈哈哈哈!不过也就这样吧.按照同学传达的老师的意思就是“写博客就是在重复一天的所学,虽然可能会花一定的时间,但是对于自己是 ...

  10. 20145207 《Java程序设计》第一周学习总结

    不好意思,来晚了   别的先不说,先道个歉,放假前跟娄老师多少发生点矛盾,望原谅. 假期忙实习还有一些其他事情,为了认真对待这门课,把剩下的时间留下来,争取一天一章来弥补. 由于没选课加上另一门课没开 ...