1. 原生Ajax写法
建立XMLHTTPRequest对象
注册回调函数 当服务器回应我们了,我们想要执行什么逻辑
使用open方法设置和服务器端交互的基本信息 设置提交的网址,数据,post提交的一些额外内容
设置发送的数据,开始和服务器端交互 发送数据
更新界面 在注册的回调函数中,获取返回的数据,更新界面
示例代码:GET get的数据,直接在请求的url中添加即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <script type="text/javascript" > var xml = new XMLHttpRequest(); xml.open('get' ,'01.ajax.php?name=fox' ); xml.send(null ); xhr.onreadystatechange = function ( ) { if (xhr.readyState == 4 && xhr.status == 200 ) { alert(xml.responseText); } }; </script>
示例代码:POST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <script type="text/javascript" > var xhr = new XMLHttpRequest(); xhr.open('post' , '02.post.php' ); xhr.setRequestHeader("Content-type" ,"application/x-www-form-urlencoded" ); xhr.send('name=fox&age=18' ); xhr.onreadystatechange = function ( ) { if (xhr.readyState == 4 && xhr.status == 200 ) { alert(xhr.responseText); } }; </script>
2. Ajax工具函数封装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 function ajax (option ) { var xmlRequest ; if (XMLHttpRequest) { xmlRequest = new XMLHttpRequest(); }else { xmlRequest = new ActiveXObject("Microsoft.XMLHTTP" ); } var formatStr = "" ; for (var item in option.data){ formatStr+=item; formatStr+="=" ; formatStr+=option.data[item]; formatStr+="&" ; } formatStr = formatStr.slice(0 ,-1 ); if (option.method == "get" ){ option.url = option.url+"?" +formatStr; option.data = null ; } xmlRequest.open(option.method,option.url) if (option.method=="post" ) { xmlRequest.setRequestHeader("Content-type" ,"application/x-www-form-urlencoded" ); } xmlRequest.send(option.data); xmlRequest.onreadystatechange = function ( ) { if (xhr.readyState == 4 && xhr.status == 200 ) { option.success(这里的数据是ajax获取的); } }; }
3. JQueryAjax使用 格式化表单$(‘form’).serialize()
我们在向服务器提交数据时,如果使用的是Ajax需要手动将数据格式化name=fox&age=18类似这样的格式,JQuery已经封装好了一个格式化数据的方法
语法:$(selector).serialize() 直接可以将form中拥有name属性的表单元素的字,进行格式化
$.ajax({}) 方法
1 2 3 4 5 6 7 8 $.ajax({ url:'01.php' , data:'name=fox&age=18' , type:'GET' , success:function (argument ) {}, beforeSend:function (argument ) {}, error:function (argument ) {console .log(argument);}, })