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. Spring 3.x jar 包详解 与 依赖关系(转)

    以下的内容我会持续更新(当然是我有新发现的时候); 以下内容是我在网上搜索.整理.修改的而成的内容.由于很多内容都是转载了,无法追溯到源头,因此无法一一对原作者进行道谢. 这几天,我查阅大量的官方的文 ...

  2. ionic一些常见问题及方法(网页链接式)

    ionic 进入二级目录以后隐藏底部导航栏(tabs) http://blog.csdn.net/shenshucong520/article/details/48287811ionic三级目录乃至多 ...

  3. python中新式类和经典类的区别

    1).python在类中的定义在py2-3版本上是使用的有新式类和经典类两种情况,在新式类和经典类的定义中最主要的区别是在定义类的时候是否出现引用object;如:经典类:Class 类名::而新式类 ...

  4. 【转载】MFC 程序入口和执行流程

    原文链接: http://www.cnblogs.com/liuweilinlin/archive/2012/08/16/2643272.html 一 MFC程序执行过程剖析 1)我们知道在WIN32 ...

  5. 使用CollectionView做横向滑动分页效果:

    一开始几页滑动是没有问题的,等滑到三四个页面之后,就出现奇怪的缝隙,一开始死活找不到原因,最后在layout的代理方法minimumLineSpacingForSectionAtIndex返回值设置为 ...

  6. 一个小玩意 PHP实现微信红包金额拆分试玩

    <meta charset="utf-8"> <?php // 新年红包金额拆分试玩 class CBonus { public $bonus;//红包 publ ...

  7. css 字体样式

    [强制] font-family 属性中的字体族名称应使用字体的英文 Family Name,其中如有空格,须放置在引号中. 解释: 所谓英文 Family Name,为字体文件的一个元数据,常见名称 ...

  8. Android图像处理之Bitmap类(zz)

    Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件.本文从应用的角度,着重介绍怎么用Bitmap来实现这些 ...

  9. 基于Qt实现的截图小程序

    在最近做的行人检测项目中,由于需要训练分类器,而分类器的训练又需要有一个一定长宽的样本.为了方便样本的采集,因此实现了这样的一个截图程序.该程序的主要功能是加载视频到程序中,程序可以对视频进行播放.暂 ...

  10. C++Builder 笔记

    1.界面窗口如何不显示标题栏? 在Form属性栏里面把BorderStyle的值设为None 2.wchar_t wchar_t是C/C++的字符类型,是一种扩展的存储方式,wchar_t类型主要用在 ...