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);
            }
        }
    )
    }

 

posted @ 2018-01-23 17:43  天祈笨笨  阅读(167)  评论(0编辑  收藏  举报