`
xiegangthrille
  • 浏览: 93651 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

兼容IE、Firefox浏览器ajax写法,.Net为后台服务器的结构开发

阅读更多

做了一个web方式的GPS车载定位系统,用到了自己写了个Ajax处理类,客户端界面Ext 2.0,后台C#写的一个服务器(后台服务器已经做好了不用管)。系统开发前期,本来打算将IE、FireFox做兼容,但是在FireFox做测试时,出现了问题。客户端向服务器发送指令成功,但是不能接受响应消息(IE没有问题)。

 

这段时间,做为一个Web方式的系统,我个人觉得必须兼容2种以上的主流浏览器。所以Firefox的兼容是必须的。

这个Ajax类是兼容IE,FireFox:

var Ajax=function(){
    this.http_request=false;
    return{
        init:function(){
            this.createAjaxObj();
        },
        createAjaxObj:function(){
                //创建XMLHttpRequest实例 
                if (window.XMLHttpRequest) 
                {   //Mozilla 浏览器 
                    this.http_request = new XMLHttpRequest(); 
                    if (this.http_request.overrideMimeType) 
                    {//设置MiME类别 
                        this.http_request.overrideMimeType("text/xml"); 
                    }
                }else if (window.ActiveXObject) 
                { // IE浏览器 
                            try 
                            { 
                                this.http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
                            }
                            catch (e) 
                            { 
                                try 
                                { 
                                    this.http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
                                } 
                                catch (e) 
                                { 
                                } 
                            }
                        } 
                if (!this.http_request) { // 异常,创建对象实例失败 
                    //"不能创建XMLHttpRequest对象实例" 
                    window.alert("不能创建XMLHttpRequest对象实例.."); 
                    return false; 
                } 
        },
        sendRequest:function(method,url,content){
        
           
            // 确定发送请求的方式和URL以及是否异步执行下段代码 
            if (method.toLowerCase() == "get") 
            { 
                if(navigator.userAgent.indexOf("MSIE")<=0){
                    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
                }
                this.http_request.open(method, url, false); 
                this.http_request.send(null); 
            } 
            else 
            { 
                if (method.toLowerCase() == "post") 
                { 
                    this.http_request.open(method, url, false); 
                    this.http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
                    this.http_request.send(content); 
                } 
                else 
                { 
                    //http请求类别参数错误 
                    window.alert("http请求类别参数错误.."); 
                    return false; 
                } 
            } 
            //开始发起浏览请求 
            // 请求已完成 
            if (this.http_request.readyState == 4) 
            { 
                // 信息已经成功返回,开始处理信息 
                if (this.http_request.status == 200) 
                { 
                    //返回的是文本格式信息 
                    return this.http_request.responseText; 
                    //返回的XML格式文档就用alert(http_request.responseXML); 
                } 
                else 
                { 
                    //页面不正常 
                    //"您所请求的页面有异常" 
                    alert("您所请求的页面有异常"); 
                } 
            } 
        },
        processResponse:function(){
             
        },
        addParamsGET:function(sURL,key,value)
        {  
            sURL+=(sURL.indexOf("?")==-1?"?":"&");
            sURL+=(key+"="+value);
            return sURL;
        },
        addParamsPOST:function(key,value){
            var params="&";
                params+=(key+"="+value);
            return params;
        },
        getTime:function(){
            var DateTime=new Date();
            return  DateTime.getFullYear()+"-"+(DateTime.getMonth()+1)+"-"+DateTime.getDate()+" "+DateTime.getHours()+":"+DateTime.getMinutes()+":"+DateTime.getSeconds();
        }
    };
    
}

 

前段时间不兼容的原因,是因为没有设置Firefox的数据访问权限.(跨域)

解决方法:

           打开FireFox-->about:config-->signed.applets.codebase_principal_support设置为true;

在xmlHttp.open("GET",url,false)方法之前加以下代码:

               //如果不是IE浏览器就执行

                if(navigator.userAgent.indexOf("MSIE")<=0){
                    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
                }

 

 

分享到:
评论

相关推荐

    ajax实例,兼容各个主流浏览器

    由于不同浏览器对XMLHttpRequest对象的支持程度不同,我们需要编写兼容代码来确保在所有主流浏览器(如IE、Firefox、Chrome、Safari等)中都能正常工作。以下是一些常见的兼容性问题及解决方案: #### 2.1 创建...

    .net模拟多选框兼容多种浏览器

    标题中的".net模拟多选框兼容多种浏览器",指的是使用.NET技术来编写一段代码,该代码能够在不同的浏览器环境下模拟复选框的行为,确保在IE、Firefox、Chrome、Safari等主流浏览器中都能正常工作。这段源码很可能...

    css浏览器兼容写法

    本文将详细介绍如何编写针对不同浏览器的CSS兼容写法。 首先,我们可以使用特定的CSS选择器来让特定浏览器识别某些样式。例如,对于IE6,我们使用`*html .head{color:#000;}`,其中星号(*)前缀的选择器只有IE6会...

    ajax+.net开发实例

    学习如何使用浏览器的开发者工具(如Chrome的DevTools或Firefox的Developer Edition)来调试Ajax请求,以及如何编写单元测试和集成测试来验证Ajax功能的正确性。 以上知识点涵盖了Ajax与.NET开发实例中可能涉及的...

    IE6、IE7、Firefox之间的兼容写法

    ### IE6、IE7、Firefox之间的兼容写法详解 #### 一、引言 随着Web技术的不断发展,浏览器兼容性问题一直是前端开发人员面临的重要挑战之一。尤其在早期的Web开发过程中,不同版本的Internet Explorer(简称IE)...

    JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)

    "JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)"是一个专门为JavaScript环境设计的,旨在解决跨浏览器兼容性问题的日期选择工具。这个组件的目标是确保在不同浏览器如Internet Explorer(IE)、Firefox、...

    JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器

    "JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器"这一技术主题,聚焦于如何使用JavaScript(JS)在各种浏览器环境下处理Excel文件,包括古老的Internet Explorer(IE)、Firefox以及Chrome。下面我们将深入探讨这...

    CSS兼容大全IE5,IE5.5,IE6,IE7,Firefox,Opera,Safari等浏览器

    CSS 兼容大全 IE5,IE5.5,IE6,IE7,Firefox,Opera,Safari 等浏览器 CSS 兼容大全是指在不同的浏览器中,例如 IE5,IE5.5,IE6,IE7,Firefox,Opera,Safari 等,如何使网页正常显示的技术。这个技术的核心是 CSS Hack,即...

    IE与Firefox的CSS兼容大全

    在网页设计中,CSS(层叠样式表)的兼容性是一个关键问题,特别是对于历史悠久的Internet Explorer(IE)和相对现代的Firefox浏览器。由于这两者对CSS标准的解析方式不同,开发者经常面临兼容性挑战。以下是一些针对...

    Firefox浏览器兼容JS脚本

    本文将围绕Firefox浏览器与Internet Explorer(简称IE)之间关于JavaScript脚本的兼容性差异进行详细探讨,并通过具体的示例来帮助开发者更好地理解和解决实际开发过程中遇到的问题。 #### 二、关键知识点详解 ###...

    ASP.NET获取客户端的操作系统、浏览器、.NET版本等信息

    在ASP.NET开发中,了解客户端的信息对于提供定制化服务、优化用户体验或进行错误排查至关重要。本文将详细探讨如何在ASP.NET应用程序中获取客户端的操作系统、浏览器类型以及正在使用的.NET Framework版本。 首先,...

    Ajax 创建XMLHttpRequest对象,兼容所有主流浏览器(IE5除外)

    经测试,用此方法创建XMLHttpRequest对象,在运用AJAX的时候,可以的兼容IE6,IE7,IE8,Opera,Safari,Google Chrome,fireFox。主流的应该就这些吧?theWorld,遨游等浏览器都是以IE为核心的,所以肯定也没问题。 另外...

    asp.net 多图片上传 可预览 兼容火狐 IE

    在本场景中,"ASP.NET 多图片上传 可预览 兼容火狐 IE"是一个功能实现,它允许用户在网页上一次性上传多张图片,并在上传前或上传过程中提供预览功能,同时确保该功能在不同浏览器,如火狐(Firefox)和IE(Internet...

    用于 Firefox 的 .NET Framework Assistant 1.0 的 .NET Framework 3.5 SP1 更新

    此外,此更新还将使用于 Firefox 的此版本的 .NET Framework Assistant 与将来的 Firefox 浏览器版本兼容。此更新还将使用于 Firefox 的此版本的 .NET Framework Assistant 与将来的 Firefox 浏览器版本兼容。为了...

    ie6 ie7 ff浏览器兼容

    ### 浏览器兼容性问题解析:针对IE6、IE7与Firefox的样式处理 在Web开发中,浏览器兼容性始终是一项重要的考虑因素。不同浏览器对CSS的支持程度不一,尤其是对于早期版本的Internet Explorer(IE)如IE6、IE7,以及...

    JS日期选择器 兼容IE Firefox Opera等主流浏览器

    标题“JS日期选择器 兼容IE Firefox Opera等主流浏览器”指的是一个JavaScript插件或库,它设计用于在各种主流浏览器中提供日期选择功能,包括老版本的Internet Explorer(IE)、Firefox和Opera。兼容性是Web开发中...

    AjaxControl Toolkit .NET4.5

    8. **跨浏览器兼容性**: 支持多种现代浏览器,如Internet Explorer、Firefox、Chrome和Safari,确保了广泛的用户覆盖。 通过深入理解和使用AjaxControl Toolkit,开发者可以构建出更加动态、高效的ASP.NET Web应用...

    vue自定义浏览器滚动条(兼容大部分浏览器含ie)_vue tree组件 下拉滚动条

    /* Firefox */ } .scroll-area::-webkit-scrollbar { width: 10px; } .scroll-area::-webkit-scrollbar-track { background: #f1f1f1; } .scroll-area::-webkit-scrollbar-thumb { background: #888; }...

    asp.net ajax--AJAX Control Tookit for.net4 and 4.5.zip

    3. **更好的浏览器兼容性**:在.NET 4和4.5中,AJAX Control Toolkit支持更多的现代浏览器,包括Firefox、Chrome、Safari等,除了默认支持的IE。 4. **响应式设计**:随着移动设备的普及,Toolkit中的控件也逐渐具备...

Global site tag (gtag.js) - Google Analytics