AJAX学习笔记
创建 XMLHttpRequest 对象
var xmlhttp; if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest(); } else { // IE6, IE5 浏览器执行代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
向服务器发送请求请求
open(method,url,async)规定请求的类型、URL 以及是否异步处理请求。xmlhttp.open("GET","/try/ajax/demo_get.php",true);
- method:请求的类型;GET 或 POST
- url:文件在服务器上的位置
- async:true(异步)或 false(同步)
send(string)将请求发送到服务器。xmlhttp.send();
- string:仅用于 POST 请求
POST 请求
xmlhttp.open("POST","/try/ajax/demo_post2.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");//常用有两种:application/x-www-form-urlencoded和multipart/form-data xmlhttp.send("fname=Henry&lname=Ford");//这里发送表单的数据
JS解发:使用当前值,事件为按键事件
<input type="text" id="txt1" onkeyup="showHint(this.value)" />
function showHint(str) { var xmlhttp; if (str.length==0) { document.getElementById("txtHint").innerHTML="";//设置空白 return; } .... xmlhttp.onreadystatechange=function() //onreadystatechange 事件 { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","/ajax/gethint.asp?q="+str,true); xmlhttp.send();
响应
非XML请用
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
示例
function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "cd_catalog.xml", true); xhttp.send(); } function myFunction(xml) { var i; var xmlDoc = xml.responseXML; var table="<tr><th>Artist</th><th>Title</th></tr>"; var x = xmlDoc.getElementsByTagName("CD"); for (i = 0; i <x.length; i++) { table += "<tr><td>" + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</td></tr>"; } document.getElementById("demo").innerHTML = table; }
一个上午学完!!你懂了?反正我是懂了
MVC传输JSON的方法
public ActionResult test() { testmodel r = new testmodel(); r.id = 5; r.name = "hole mvc5"; return Json(r, JsonRequestBehavior.AllowGet); }
视图 (注意此处URL的输写格式是/开头)
<a href="javascript:void(0);" onclick="javascript:upclick();">Click Me</a> <script type="text/javascript"> function upclick() { $.getJSON("/Home/test",function(result){ $("p").append("id:"+ result["id"] + "name:" + result["name"]); }); } </script>
常用的格式:
$.getJSON("/Home/test",function(r){ var newTr = $('<tr></tr>'); var nameTD = $('<td></td>'); var salaryTD = $('<td></td>'); nameTD.text(r.id); salaryTD.text(r.name); newTr.append(nameTD); newTr.append(salaryTD); $('#EmployeeTable').append(newTr); }
上面的代码是简化的$.ajax与下面相同
function funtest() { $.ajax({ type: "POST", url: "/Home/test", datatype: "json", success: function (r) { var newTr = $('<tr></tr>'); var nameTD = $('<td></td>'); var salaryTD = $('<td></td>'); nameTD.text(r.id); salaryTD.text(r.name); newTr.append(nameTD); newTr.append(salaryTD); $('#EmployeeTable').append(newTr); } } ) }