我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何理解Ajax核心XMLHttpRequest

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解Ajax核心XMLHttpRequest

这篇文章主要讲解了“如何理解Ajax核心XMLHttpRequest”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解Ajax核心XMLHttpRequest”吧!

    使用方法 
    XMLHttpRequest五步使用法:

复制代码 代码如下:


    1.创建对象;
    2.注册回调函数;
    3.使用open方法设置和服务器交互的基本信息;
    4.设置发送的数据,开始和服务器端交互;
    5.实现回调函数。

    由于每次应用XMLHttpRequest对象时,都要进行五步操作,因此,可将该对象的使用封装为js文件中,传递部分参数使用其方法就可以完成相应功能,实现如下:

复制代码 代码如下:


    //使用封装方法人员只提供http的请求,url地址,数据,成功和失败的回调的方法
    //1.定义XMLHttpRequest对象的构造方法
    var MyXMLHttpRequest =function(){
    var xmlhttprequest;
    if(window.XMLHttpRequest){
    //IE7,IE8,FireFox,Mozillar,Safari,Opera
    //alert("IE7,IE8,FireFox,Mozillar,Safari,Opera");
    xmlhttprequest = new XMLHttpRequest();
    //解决浏览器在服务器端响应由于没有Text头的时候可能无法工作的问题
    if(xmlhttprequest.overrideMimeType){
    xmlhttprequest.overrideMimeType("text/xml");
    }
    }else if(window.ActiveXObject){
    //IE6,IE5.5,IE5
    alert("IE6,IE5.5,IE5");
    var activexName =["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
    for (var n=0;n

扩展问题

    1.浏览器缓存
    2.中文乱码
    3.跨域访问

    对于问题1、问题3都可以通过更改url地址的方法得以解决。问题1可在url地址尾添加时间戳,问题3通过代理方式进行解决。只需在send()中的第三步执行前添加相应判断即可:

复制代码 代码如下:


    //解决缓存的转换:增加时间戳
    if(url.indexOf("?") >= 0 ){
    url = url + "&t=" + (new Date())。valueOf();
    } else {
    url = url + "?t=" + (new Date())。valueOf();
    }
    //解决跨域的问题
    if(url.indexOf("http://") >= 0) {
    url.replace("?","&");
    url = "Proxy?url=" + url;
    }

    问题3对应代理服务端实现:

复制代码 代码如下:


   
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    //获取参数,最后得到请求url地址类似于:url = http://192.168…/AJAX/AJAXServer?aa=11&bb=22&cc=33
    StringBuilder url = new StringBuilder();
    url.append(request.getParameter("url"));
    //获取访问的跨域地址url = http://192.168…/AJAX/AJAXServer
    Enumeration enu = request.getParameterNames();
    boolean flag = false;       //定义标志变量,表示是否为拼接的第一个参数
    while(enu.hasMoreElements()){
    String paramName = (String) enu.nextElement();
    if(!paramName.equals("url")){
    String paramValue = request.getParameter(paramName);
    paramValue = URLEncoder.encode(paramValue,"utf-8");
    if(!flag){
    url.append("?")。append(paramName)。append("=")。append(paramValue);
    flag = true;
    } else {
    url.append("&")。append(paramName)。append("=")。append(paramValue);
    }
    }
    }
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = response.getWriter();
    if(url != null && url.length() > 0){
    URL connectionUrl = new URL(url.toString());
    BufferedReader reader = new BufferedReader(new InputStreamReader(connectionUrl.openStream(),"utf-8"));

感谢各位的阅读,以上就是“如何理解Ajax核心XMLHttpRequest”的内容了,经过本文的学习后,相信大家对如何理解Ajax核心XMLHttpRequest这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何理解Ajax核心XMLHttpRequest

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

下载Word文档

猜你喜欢

如何理解Scala的核心规则

这篇文章将为大家详细讲解有关如何理解Scala的核心规则,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Read Eval Print Loop (REPL)REPL在Scala里面指的是直接
2023-06-17

如何快速理解MySQL核心技术?

如何快速理解MySQL核心技术?MySQL是一种常用的关系型数据库管理系统,广泛应用于各种应用程序和网站开发中。理解MySQL的核心技术对于数据库开发和管理非常关键。本文将介绍一些快速理解MySQL核心技术的方法和建议。首先,了解MySQL
2023-10-22

不使用XMLHttpRequest对象如何实现Ajax效果

小编给大家分享一下不使用XMLHttpRequest对象如何实现Ajax效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!本文实例讲述了不使用XMLHttpReq
2023-06-08

如何理解Java Socket聊天程序核心代码

如何理解Java Socket聊天程序核心代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java Socket聊天程序在编写的时候需要我们注意很多的事情,本程序是基于J
2023-06-17

如何解读Java HashMap核心源码

这期内容当中小编将会给大家带来有关如何解读Java HashMap核心源码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。对HashMap实现的源码进行简单的分析。 所使用的HashMap源码的版本信息如下
2023-06-17

SpringIOC与DI核心深入理解

IOC也是Spring的核心之一了,之前学的时候是采用xml配置文件的方式去实现的,后来其中也多少穿插了几个注解,但是没有说完全采用注解实现。那么这篇文章就和大家分享一下,全部采用注解来实现IOC+DI
2023-02-20

Redis核心原理详细解说

目录1、Redis为什么这么快2、Redis网络模型3、Redis数据结构4、Redis持久化RDB快照(snapshot)AOF(append-only file)RDB与AOF区别Redis数据备份策略5、Redis管道(Pipelin
2022-07-21

如何理解CDN的核心技术之一:负载均衡

本篇内容主要讲解“如何理解CDN的核心技术之一:负载均衡”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解CDN的核心技术之一:负载均衡”吧!CDN是近年来从美国首先兴起并迅速发展起来的一种
2023-06-10

如何理解golang里面的读写锁实现与核心原理

如何理解golang里面的读写锁实现与核心原理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。基础筑基读写锁的特点读写锁区别与互斥锁的主要区别就是读锁之间是共享的
2023-06-19

编程热搜

目录