zoukankan      html  css  js  c++  java
  • 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);
                }
            }
        )
        }
  • 相关阅读:
    数据库目录
    设计模式
    mysql的索引结构
    ElasticSearch的基本操作
    转:基于Hadoop 的分布式网络爬虫技术学习笔记
    爬虫 es 搜索引擎
    vue+django2.0.2-rest-framework 生鲜项目
    fiddler抓包时显示Tunnel to......443
    安装 Win10 + Ubuntu 双系统过程
    ROS 订阅者的创建及使用
  • 原文地址:https://www.cnblogs.com/praybb/p/8337048.html
Copyright © 2011-2022 走看看