在页面的顶部也就是<script type="text/javascript"></script>之前引入下载的AjaxPro这个js库就可以了.还有这个库应该是基于Jquery的,所以还得引入Jquery的库才可以用哦.
<script type="text/javascript">//请求函数
function f1(){
console.log('start')
//1.创建AJAX对象
var ajax = new XMLHttpRequest()
//4.给AJAX设置事件(这里最多感知4[1-4]个状态)
ajax.onreadystatechange = function(){
//5.获取响应
//responseText 以字符串的形式接收服务器返回的信息
//console.log(ajax.readyState)
if(ajax.readyState == 4 && ajax.status == 200){
var msg = ajax.responseText
console.log(msg)
//alert(msg)
var divtag = document.getElementById('result')
divtag.innerHTML = msg
}
}
//2.创建http请求,并设置请求地址
var username = document.getElementsByTagName('input')[0].value
var email = document.getElementsByTagName('input')[1].value
username = encodeURIComponent(username) //对输入的特殊符号(&,=等)进行编码
email = encodeURIComponent(email)
ajax.open('get','response.php?username='+username+'&email='+email)
//3.发送请求(get--null post--数据)
ajax.send(null)
}
</script>
一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象!利用ajax实现异步交互无非4步:
创建ajax核心对象
与服务器建立连接
向服务器发送请求
接收服务器响应的数据
看似神秘的异步交互当明确这4步后,也许在大家脑海里已经有了初步的思路了
首先我们创建ajax的核心对象,由于浏览器的兼容问题我们在创建ajax核心对象的时候不得考虑其兼容问题,因为要想实现异步交互的后面步骤都基于第一步是否成功的创建了ajax核心对象.
function
getXhr(){
//
声明XMLHttpRequest对象
var
xhr
=
null
//
根据浏览器的不同情况进行创建
if(window.XMLHttpRequest){
//
表示除IE外的其他浏览器
xhr
=
new
XMLHttpRequest()
}else{
//
表示IE浏览器
xhr
=
new
ActiveXObject('Microsoft.XMLHttp')
}
return
xhr
}
//
创建核心对象
var
xhr
=
getXhr()
通过上述代码我们已经成功的创建了ajax核心对象,我们保存在变量xhr中,接下来提到的ajax核心对象都将以xhr代替.
第二步就是与服务器建立连接,通过ajax核心对象调用open(method,url,async)方法.
open方法的形参解释:
method表示请求方式(get或post)
url表示请求的php的地址(注意当请求类型为get的时候,请求的数据将以问号跟随url地址后面,下面的send方法中将传入null值)
async是个布尔值,表示是否异步,默认为true.在最新规范中这一项已经不在需要填写,因为官方认为使用ajax就是为了实现异步.
xhr.open("get","01.php?user=xianfeng")//这是get方式请求数据
xhr.open("post","01.php")//这是以post方式请求数据
第三步我们将向服务器发送请求,利用ajax核心对象调用send方法
如果是post方式,请求的数据将以name=value形式放在send方法里发送给服务器,get方式直接传入null值
xhr.send("user=xianfeng")//这是以post方式发送请求数据
xhr.send(null)//这是以get方式
第四步接收服务器响应回来的数据,使用onreadystatechange事件监听服务器的通信状态.通过readyState属性获取服务器端当前通信状态.status获得状态码,利用responseText属性接收服务器响应回来的数据(这里指text类型的字符串格式数据).后面再写XML格式的数据和大名鼎鼎的json格式数据.
xhr.onreadystatechange
=
function(){
//
保证服务器端响应的数据发送完毕,保证这次请求必须是成功的
if(xhr.readyState
==
4&&xhr.status
==
200){
//
接收服务器端的数据
var
data
=
xhr.responseText
//
测试
console.log(data)
}
}