iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >js与jQuery如何实现的兼容多浏览器Ajax请求
  • 981
分享到

js与jQuery如何实现的兼容多浏览器Ajax请求

2024-04-02 19:04:59 981人浏览 薄情痞子
摘要

这篇文章主要介绍js与Jquery如何实现的兼容多浏览器ajax请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ajax我们经常会用到的,但网上找到的大部份ajax兼容性都不强,下

这篇文章主要介绍jsJquery如何实现的兼容多浏览器ajax请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

ajax我们经常会用到的,但网上找到的大部份ajax兼容性都不强,下面自己改了一个不错的兼容性很强的ajax函数,同时后面介绍的jquery ajax 兼容性也很强。

一、纯js实现的Ajax实例:

var ajax = function() {};
ajax.prototype = {
    request: function(method, url, callback, postVars) {
        var xhr = this.createXhrObject();
        xhr.onreadystatechange = function() {
            if (xhr.readyState !== 4) return;
            (xhr.status === 200) ?
                callback.success(xhr.responseText, xhr.responseXML) :
                callback.failure(xhr,status);
        };
        if (method !== "POST") {
            url += "?" + JSONStringify(postVars);
            postVars = null;
        }
        xhr.open(method, url, true);
        xhr.send(postVars);
    },
    createXhrObject: function() {
        var methods = [
            function() { return new XMLHttpRequest(); },
            function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
            function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
        ],
        i = 0,
        len = methods.length;
        for (; i < len; i++) {
            try {
                methods[i];
            } catch(e) {
                continue;
            }
            this.createXhrObject = methods[i];
            return methods[i];
        }
        throw new Error("ajax created failure");
    },
    JSONStringify: function(obj) {
        return JSON.stringify(obj).replace(/"|{|}/g, "")
                    .replace(/b:b/g, "=")
                    .replace(/b,b/g, "&");
    }
};


二、jQuery $.ajax概述

出现JQuery后,使AJAX变得更加容易实现。
JQuery中,AJAX的高层实现主要有$.get(),$.post()等,下面详细介绍一下$.ajax()的使用方法
1、请求页面AJAX.aspx
js代码如下:

<script type="text/javascript">
        function Text_ajax()
        {
           $.ajax(
           {
              type:"GET",//通常会用到两种:GET,POST。默认是:GET
              url:"ResponseText.aspx",//(默认: 当前页地址) 发送请求的地址
              dataType:"html",//预期服务器返回的数据类型。
              beforeSend:beforeSend, //发送请求
              success:callback, //请求成功
              error:error,//请求出错 
              complete:complete//请求完成
              
           });
        }
        function error(XMLHttpRequest, textStatus, errorThrown)
        {
              // 通常情况下textStatus和errorThown只有其中一个有值 
              $("#showResult").append("<div>请求出错啦!</div>");
        }
        function complete(XMLHttpRequest, textStatus)
        {  
              $("#showResult").append("<div>请求完成</div>");
        }
        function beforeSend(XMLHttpRequest)
        {
              $("#showResult").append("<div>发送请求…..<div>");
               
        }
        function callback(msg)
        {
              $("#showResult").append("<div>请求成功,回传数:"+msg+"<div>");         
        }
    </script>


html代码如下:

  <input value="Text_ajax函数" type="button" onclick="Text_ajax()"/>
    <div id="showResult">   
</div>

响应页面JQueryAJAX.aspx
后台代码:

  protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("呵呵!测试成功啦!");
    }

三、关于jQuery Ajax中文乱码问题

方法一:提交前采用encodeURI两次编码,记住一定是两次

1.修改以下代码

data:{id:1, type:encodeURI(encodeURI('商品'))}

2.在后台action里要对取得的字符串进行decode

String type = request.getParameter("type");
type = URLDecoder.decode(type, "UTF-8");

方法二:ajax配置contentType属性,加上charset=UTF-8

在ajax方法中加入以下参数

contentType: "application/x-www-fORM-urlencoded; charset=UTF-8″

使用其它js框架或者xhr都是差不多,设置header中contentType即可,

这里关键是charset=UTF-8,如果没有这个,是不行的,默认jQuery里的contentType是没有的.
此外还需要补充一下jQuery里对参数已经进行了一次encodeURIComponent的处理。

相比较而言,方法二在action里不需要进行decode,所以推荐使用此方法.

以上是“js与jQuery如何实现的兼容多浏览器Ajax请求”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: js与jQuery如何实现的兼容多浏览器Ajax请求

本文链接: https://www.lsjlt.com/news/67658.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • js与jQuery如何实现的兼容多浏览器Ajax请求
    这篇文章主要介绍js与jQuery如何实现的兼容多浏览器Ajax请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ajax我们经常会用到的,但网上找到的大部份ajax兼容性都不强,下...
    99+
    2024-04-02
  • XMLHTTP如何实现多浏览器兼容性
    这篇文章给大家分享的是有关XMLHTTP如何实现多浏览器兼容性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:var xmlhttp=null;  i...
    99+
    2024-04-02
  • 如何实现Jquery Ajax请求
    如何实现Jquery Ajax请求,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 jQuery确实是一个挺好的轻量级的JS框架,能帮...
    99+
    2024-04-02
  • Ajax请求与浏览器缓存的示例分析
    这篇文章主要为大家展示了“Ajax请求与浏览器缓存的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ajax请求与浏览器缓存的示例分析”这篇文章吧。在现代...
    99+
    2024-04-02
  • 如何解决Ajax请求过程中下载文件在FireFox浏览器下的兼容问题
    本篇文章为大家展示了如何解决Ajax请求过程中下载文件在FireFox浏览器下的兼容问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。需求很简单,点击一个文件链接下...
    99+
    2024-04-02
  • 如何实现JavaScript原生封装ajax请求和Jquery中的ajax请求
    小编给大家分享一下如何实现JavaScript原生封装ajax请求和Jquery中的ajax请求,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、原生ajax(1)html前端代码get请...
    99+
    2024-04-02
  • 如何解决js+ajax同步请求造成浏览器假死的问题
    这篇文章主要为大家展示了“如何解决js+ajax同步请求造成浏览器假死的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决js+ajax同步请求造成浏览...
    99+
    2024-04-02
  • 如何实现超出部分自动换行兼容多浏览器
    本篇内容介绍了“如何实现超出部分自动换行兼容多浏览器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • ajax如何实现文件上传成功和解决浏览器兼容问题
    这篇文章主要为大家展示了“ajax如何实现文件上传成功和解决浏览器兼容问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ajax如何实现文件上传成功和解决浏览器...
    99+
    2024-04-02
  • 如何判断浏览器版本的语句且可兼容多个浏览器
    本篇内容主要讲解“如何判断浏览器版本的语句且可兼容多个浏览器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何判断浏览器版本的语句且可兼容多个浏览器”吧!<!--[if lte IE 6]...
    99+
    2023-06-08
  • jQuery如何平行的运行多个Ajax请求
    这篇文章给大家分享的是有关jQuery如何平行的运行多个Ajax请求的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。平行的运行多个Ajax请求当我们需要发送多个Ajax请求是,相反...
    99+
    2024-04-02
  • JS网页播放声音实现代码兼容各种浏览器
    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3...
    99+
    2022-11-15
    浏览器 JS网页播放
  • JavaScript浏览器的兼容问题如何解决
    本文小编为大家详细介绍“JavaScript浏览器的兼容问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript浏览器的兼容问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。inn...
    99+
    2023-07-04
  • HTML5的hidden属性如何兼容老浏览器
    这篇文章主要为大家展示了“HTML5的hidden属性如何兼容老浏览器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5的hidden属性如何兼容老浏览器...
    99+
    2024-04-02
  • 如何解决IE浏览器的兼容问题
    这篇文章主要介绍如何解决IE浏览器的兼容问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!怎么用一行代码解决CSS各种IE各种兼容问题<meta http-equiv...
    99+
    2024-04-02
  • CSS如何实现透明效果并兼容主流浏览器
    小编给大家分享一下CSS如何实现透明效果并兼容主流浏览器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!透明往往能产生不错的网页视...
    99+
    2024-04-02
  • js中如何解决Date()日期函数浏览器兼容的问题
    这篇文章主要为大家展示了“js中如何解决Date()日期函数浏览器兼容的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中如何解决Date()日期函数浏览...
    99+
    2024-04-02
  • js如何实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
    小编给大家分享一下js如何实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!很多网站实现了利用JS保存页面中文本框内容到本地,并另...
    99+
    2024-04-02
  • ajax如何实现服务器与浏览器长连接的功能
    小编给大家分享一下ajax如何实现服务器与浏览器长连接的功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下<script type=&qu...
    99+
    2023-06-08
  • js如何实现浏览器滚动条
    小编给大家分享一下js如何实现浏览器滚动条,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图:代码如下:<!DOCTYP...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作