什么是Ajax?
Asynchronous JavaScript and XML(异步JavaScript和XML)
说白了就是用javascript异步形式去操作xml(数据交互)
—节省用户操作,时间,提高用户体验,减少数据请求。
—传输获取数据
使用AJax
使用ajax获取某一文本文件的内容
Ajax过程详解
一、创建一个ajax对象
ie6以下new ActiveXObject('Microsoft.XMLHTTP')
二、open方法
参数
1、打开方式
2、地址
3、是否异步
异步:非阻塞 前面的代码不好影响后面的代码的执行
同步:阻塞 前面的代码会影响后面代码的执行
三、提交,发送请求
四、等待服务器返回内容
请求状态监控
—onreadystatechange事件
readyState属性:请求状态
—0(初始化)还没有调用oepn()方法
—1(载入)已调用send()方法,正在发送请求
—2(载入完成)send()方法完成,已收到全部相应内容
—3(解析)正在解析响应内容
—4(完成)响应内容解析完成,可以在客户端调用了
status属性:服务器(请求资源)的状态
返回的内容:
—responseText:返回以文本形式存放
—responseXML:返回XML形式的内容
关于get方式:
—缓存问题:
缓存在url?后面连接一个随机数,时间戳。
例如:xhr.open('get','2.get.php?username=leo&age=30&'+new Date().getTime(),true)
—乱码问题:
编码encodeURI
例如:xhr.open('get','2.get.php?username='+encodeURI('刘伟')+'&age=30&'+new Date().getTime(),true)
关于post方式:
数据放在send()里面作为参数传递
xhr.open('post','2.post.php',true);
//告诉后端发送的数据类型
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
xhr.send('username=leo&age=30');
post没有缓存问题
无需编码
跨域解决之JSONP
跨域的问题:
域:域名;
跨域请求(访问):一个域名下的文件请求另一个域名下的资源,就产生了跨域。
跨域的解决:Jsonp—json padding
一个完整的HTTP请求,通常有下面7个步骤:
1、建立TCP连接
2、Web浏览器向Web服务器发送请求命令
3、Web浏览器发送请求头信息
4、Web服务器应答
5、Web服务器发送应答头信息
6、Web服务器向浏览器发送数据
7、Web服务器应答关闭TCP连接
先说HTTP请求,
一个HTTP请求一般由四部分组成
1、HTTP请求的方法或动作,比如是GET还是POST请求
2、正在请求的URL,总得知道请求的地址是什么吧
3、请求头,包含一些客户端环境信息,身份验证信息等
4、请求体,也就是请求正文,请求正文中可以包含客户提交的查询字符串信息,表单信息等等
GET:一般用于信息获取
使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符
POST:一般用于修改服务器上的资源,对所发送信息的数量无限制
一个HTTP响应一般由三部分组成:
1、一个数字和文字组成的状态码,用来显示请求是成功还是失败
2、响应头,响应头也和请求头一样包含许多有用的信息,例如服务器类型,日期时间,内容类型和长度等
3、响应体,也就是响应正文