这两天学了一些关于ajax的,现在先做一下笔记:
首先,ajax是返回用户感兴趣的数据,不需要刷新整个页面。因此,可以不要要form。
然后,一、在jquery中,将数据传送给服务端,或者返回服务器端传回来的数据,可以通过$.get(url,data,callback)和$.post(url,data,callback),其中的callback主要用来处理服务端返回来的数据。当
url中,已经包含要传给服务端的数据,第二个参数就可以不用再传数据,可以直接写为null。
二、在JavaScript中
1、需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码:
var xmlhttp; if (window.XMLHttpRequest) {// 针对IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); //针对某些特定版本的mozillar浏览器的BUG进行修正 if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType("text/xml"); } } else if(window.ActiveXObject) {// 针对 lt IE6 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
2、注册回调函数:xmlhttp。onreadystatechange = callback;【callback不可以加(),加上之后就会将函数的返回值,就会出错】
3、设置连接信息
法一:
xmlhttp.open("GET",URL,true);//true表示异步
法二:
xmlhttp.open("POST","ajax_test.asp",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
4、发送数据,开始和服务端按进行交互//同步的话要服务端按数据返回来才执行,异步立即执行
xmlhttp.send(null);//get
xmlhttp.send("fname=Bill&lname=Gates");//post
5、回调函数
function callback(){ //第一个是判断对象是否交互完成,第二个是判断http是否交互完成 if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }
如果有错的,欢迎大家纠正~