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. 图像分割之(三)从Graph Cut到Grab Cut

    zouxy09@qq.com http://blog.csdn.net/zouxy09 上一文对GraphCut做了一个了解,而现在我们聊到的GrabCut是对其的改进版,是迭代的Graph Cut. ...

  2. [BS] 小知识点总结-05

    [BS] 小知识点总结-05 1. 不论UIWindow的rootViewController是navC.tabBarC还是VC,也不管modalVC和rootVC中间隔着多少个VC,但是modal出 ...

  3. Java 多线程Thread和Runnable

    Thread: class MyThread extends Thread { private int ticketsCont=5; //一共有5张火车票 private String name; / ...

  4. python_类

    1. 对象的概念 对象包括特性和方法.特性只是作为对象的一部分的变量,方法则是存储在对象内的函数.对象中的方法和其他函数的区别在于方法总是将对象作为自己的第一个参数,这个参数一般称为self. 2. ...

  5. Glossary of view transformations

    Glossary of view transformations The following terms are used to define view orientation, i.e. trans ...

  6. jQuery.serialize()函数

    jQuery.serialize()函数用于序列化一组表单元素,将表单内容编码为用于提交的字符串. jQuery.serialize()函数常用于将表单内容序列化,以便用于AJAX提交. 该函数主要根 ...

  7. Java IO之一读取文件

    package com.lf.iopreoject; import java.io.BufferedReader; import java.io.File; import java.io.FileIn ...

  8. 使用已有PDB克隆PDB

    使用已有PDB克隆PDB $ sqlplus '/as sysdba' SQL*Plus: Release Production on Tue Jun :: Copyright (c) , , Ora ...

  9. html中表格table的内容居中显示

    align——表示左右居中——left,center,right valign——控制上下居中——left,center,right <td> 标签内加入:  vertical-align ...

  10. MJRefresh简单处理

    //下拉刷新 默认 self.bottomTableVeiw.header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ [self he ...