`
ducaijun
  • 浏览: 155560 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ajax入门学习笔记

    博客分类:
  • ajax
阅读更多

本文之于记录ajax技术的原理,不用框架及js库来实现数据的异步请求交互:

 

ajax是Asynchronous JavaScript and XML(即异步JavaScript和XML)一种融合多种技术的一种技术。好别扭(⊙o⊙)…

 

ajax的技术核心是XMLHttpRequest对象,对于XMLHttpRequest最早是在IE5.0中以ActiveX组件的形式出现的,后来Mozilla,chrome,Safari,Opera等浏览器厂商都支持了XMLHttpRequest,以及IE7+(IE7及以上版本)都支持了XMLHttpRequest对象,但IE5、IE5.5(这两个应该没人用了)、IE6(国内还是有N多人的机器上还是在用这个吧?!)还是用ActiveX对象来创建XMLHttpRequest对象,所以为了我们代码的鲁棒性,通用性,我们还是得照顾IE6及以下版本的浏览器,所以创建XMLHttpRequest对象需要对不同浏览器以不同方式来创建:

 

 

 

<script type="text/javascript">

var xmlhttp;

function loadXMLDoc(url){

xmlhttp=null;

if (window.XMLHttpRequest){

//针对IE7+,firefox,chrome,Safari,Opera等浏览器

  xmlhttp=new XMLHttpRequest();

  }else if (window.ActiveXObject){

  // 针对IE5 and IE6

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

if (xmlhttp!=null){

  xmlhttp.onreadystatechange=state_Change;//这里回调函数不能加括号,只写回调函数名

  xmlhttp.open("GET",url,true);//get方式发生http请求,第三个参数是表示异步提交 

  xmlhttp.send(null);

 

 

                //如果用post方式提交http请求

//xmlhttp.open("POST",url,true); 这里的url是不带请求参数的 参数在send里附带上

//xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//这句很重要 需要自己设置请求头信息

                //xmlhttp.send("param="+paramValue);

  }else{

  alert("您的浏览器不支持XMLHTTP,请升级您的浏览器.");

  }

}

 

function state_Change(){

if (xmlhttp.readyState==4){//readyState=4时表示服务器端的响应数据已经被全部接收

  if (xmlhttp.status==200){//status=200表示http连接状态正常

    // ...our code here...

var responseText = xmlhttp.responseText;//服务器响应的数据 文本形式

alert(responseText);

    }else{

    alert("Problem retrieving XML data");

    }

  }

}

</script>

 

 

XMLHttpRequest对象操作五个步骤如下:

1、XMLHttpRequest对象的创建 (需要兼容多个浏览器,创建方式IE6和其他版本浏览器有区别)

2、设置回调函数,XMLHttpRequest对象创建成功后,需要告诉它请求服务器后回来调用哪个函数继续执行

3、建立服务器的调用,XMLHttpRequest对象的open方法,三个参数,第一个http请求方式,get或post,第二个参数,请求的url地址,第三个参数 true异步调用 false 同步调用

4、向服务器发生数据,XMLHttpRequest对象的send方法,这里才是真正的请求服务器

5、回调函数处理,在服务器端的响应数据全部接受(readyState==4)并且http连接状态正常(status==200),此可以从 XMLHttpRequest对象的responseText以文本形式接收响应的数据。

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

XMLHttpRequest对象的readyState状态值如下

 

0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)

1 (初始化) 对象已建立,尚未调用send方法

2 (发送数据) send方法已调用,但是当前的状态及http头未知

3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误

4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

常见http连接状态(XMLHttpRequest对象的status值)如下:

 

1、200 OK 访问正常  表示成功访问,为网站可正常访问时的状态。

2、301 Moved Permanently 301重定向永久重定向 对搜索引擎相对友好的跳转方式,当网站更换域名时可将原域名作301永久重定向到新域名,原域名权重可传递到新域名,也常有将不含www的域名301跳转到含www的,如xxx.com通过301跳转到www.xxx.com 

3、302 Found 临时重定向 易被搜索引擎判为作 弊,比如response.Redirect()跳转、js跳转或静态http跳转。

4、400 Bad Request 域名绑定错误 一般是服务器上域名未绑定成功,未备案等情况。

5、403 Forbidden 没有权限访问此站  你的IP被列入黑名单,连接的用户过多,可以过后再试,网站域名解析到了空间,但空间未绑定此域名等情况。

6、404 Not Found 文件或目录不存在  表示请求文件、目录不存在或删除,设置404错误页时需确保返回值为404。常有因为404错误页设置不当导致网页返回的不是404而导致搜索引擎降权。

7、500 Internal Server Error 程序或服务器错误 服务器内部程序错误,出现这样的提示一般是程序页面中出现错误,如语法错误,数据连接故障等。

 

详细的http连接状态 烦请参考我的另一片文章:http://ducaijun.iteye.com/admin/blogs/1334921

 

分享到:
评论

相关推荐

    Ajax学习笔记个人总结

    根据个人学习Ajax的过程总结,整理了Ajax相关基础知识点,对Ajax的使用有较详细的介绍,通过个别举例,可以快速了解Ajax的功能,比较适合初学者入门。

    AJAX学习笔记(内含实例)

    AJAX学习笔记。内含Java调用的两个实例,及JavaScript的ajax工具函数,可快速入门,也可当手册使用。个人精心整理,值得收藏。 更多:http://download.csdn.net/user/daillo/all

    ASP.NET AJAX 实战 学习笔记(一)

    ASP.NET Ajax学习笔记 第一章 ASP.NET AJAX基础 介绍ASP.NET AJAX 简单接处ASP.NET AJAX

    Ajax从入门到精通(含学习笔记)

    关于Ajax很好的资料,有具体的实例,看完就等于入门了,动手稍微练习一下就可以基本掌握Ajax

    Ajax入门(读书笔记)

    很好地Ajax学习资料 介绍了Ajax的主要技术,架构。 提供了具体的实例及介绍

    Ajax学习笔记

    Ajax学习笔记,Ajax从入门到精通学习文档

    前端工程师学习笔记 超级详细

    正则表达式学习笔记 微信小程序学习笔记 前端部署相关笔记 前端UI库使用记录笔记 前端JS工具库使用笔记 Webpack学习笔记 Vue笔记整合 UmiJS笔记 ...Ajax、Axios学习笔记 前端工具使用A 前端代码规范

    Head First Ajax学习笔记

    Head First系列都是入门的绝佳好书!这是Head First Ajax的一些读书笔记,读书需要越读越薄,仅供学习。

    Ajax&Json笔记

    Ajax&Json笔记,非常适合新手入门学习

    前端笔记完整版(HTML、CSS、JS、JQuery、AJAX、VUE、React等笔记)

    此笔记包含了前端代码规范、前端工具使用笔记、Ajax、Axios学习笔记、Chrome开发使用及学习笔记、ES6及后续版本学习笔记、Git学习笔记、HTML+CSS+JS基础笔记、Mobx学习笔记、Promise学习笔记、ReactHooks笔记、React...

    AJAX学习笔记适合菜鸟级人物

    学习ajax时用的一些东西,很基础适合菜鸟级人物,

    《Ajax笔记》

    就业班时,就业老师整理的关于 Ajax的面试笔记,里边含有javaScript基础加强, Ajax编程入门,jQuery框架等一些核心资料。 核心内容概述 1.JavaScript加强,涉及到ECMAScript语法、BOM对象、DOM对象以及事件。 2....

    JavaWeb入门学习笔记.chm

    此文档为传智播客老师JavaWeb入门视频的笔记,其中包含...3.笔记内容包括:HTML、CSS、JavaScript、XML、Java基础加强、Servlet、Request和Response、Cookie和Session、JSP、JSTL、MySQL、JDBC、ajax、综合案例网上书城

    YUNBIJI.zip_spring ajax_云笔记_云笔记 项目_云笔记项目

    云笔记项目主要用于客户在线学习时记录笔记,在该功能基础上又扩展了分享,收藏,活动等功能,该项目采用MVC设计模式,Spring+MyBatis,Ajax,jQuery框架开发,在此技术上实现项目的登录模块,笔记本模块,笔记模块,...

    Ajax&amp;Json基础学习和redis基础学习.zip

    文件包含ajax、json和Redis学习笔记和练习源码。 配套博客:https://blog.csdn.net/H200102/article/details/107170707

    java学习笔记

    java学习笔记大全:java内容介绍 java编程可以分成三个方向: 1、java se (j2se)桌面开发 java中的基础中的基础 2、java ee (j2ee)web开发 3、java me (j2me)手机开发 java se课程介绍 java面向对象编程(基础) java...

    Ajax以及Json入门学习全攻略

    该文档详细整理了Ajax学习的笔记,其中包含Ajax学习的各个细节,以及Json的详细介绍。

    java详细学习笔记零基础到精通.zip

    为详细笔记,有批注,一百多页,适合初学者。包含内容: Unix,Java 基础,数据库(Oracle jdbc Hibernate pl/sql),web,JSP,Struts,Ajax,Spring,Ejb,Java和模式。

Global site tag (gtag.js) - Google Analytics