CGWTQ

  原生Ajax发送请求:

    1.创建XMLhttpRequest对象

      ie中为ActiveXobject("Microsoft.XMLHTTP")  早期的ie浏览器

    2.准备发送

    3.执行发送动作

    4.指定回调函数

  案例:

  1.html文件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>初识 Ajax</title>
        <script>
            window.onload = function(){
                var btn = document.getElementById(\'btn\');
                btn.onclick = function(){
                    var uname = document.getElementById(\'username\').value;
                    var pw = document.getElementById(\'password\').value;
                    //使用Ajax
                    //1.创建XMLhttpRequest对象
                    var xhr = new XMLHttpRequest();
                    //2.准备发送
                    xhr.open(\'GET\',\'./check.php?username=\'+uname+\'&password=\'+pw,true);
                    //3.执行发送动作
                    xhr.send(null);
                    //4.指定回调函数
                    xhr.onreadystatechange = function(){
                        if(xhr.readyState == 4){
                            if(xhr.status == 200){
                                var data = xhr.responseText;
                                var info = document.getElementById(\'info\');
                                if(data == \'ture\'){
                                    info.innerHTML = \'success\';
                                }else if(data == \'false\'){
                                    info.innerHTML = \'false\';
                                }
                            }
                        }
                    }
                }
            }
        </script>
    </head>
    <body>
        <form >
            用户名:<input type="text" id="username" /><span id="info"></span><br />
            密   码:<input type="text" id="password" />
            <input type="button" value="登录" id="btn" />
        </form>
    </body>
</html>

  2.PHP文件

  

<?php
    $uname = $_GET[\'username\'];
    $pw = $_GET[\'password\'];
    if($uname == \'admin\' && $pw == \'123\'){
        echo \'ture\';
    }else{
        echo "false";
    }
?>

 

 

  1.get

    get请求参数在url中传递

  2.post

    post请求参数在请求体重传递

 

  

 

 

  

 

 

  案例:

1.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            #dv{
                width: 360px;
                height: 100px;
                background-color: green;
                position: absolute;
                left: 50%;
                top: 10px;
                margin-left: -180px;
            }
        </style>
        <script src="../jquery-1.12.2.js"></script>
        <script>
            /*
             *功能:
             *页面输入图书编号,查询服务器端的图书信息并解析 
             * 
             */
            $(function(){
                
                $(\'#btn1\').click(function(){
                    var code = $(\'#code\').val();
                    $.ajax({
                        type:\'get\',
                        url:\'02.php\',
                        data:{code:code},
                        dataType:\'json\',
                        success:function(data){
                            var info = document.getElementById(\'info\');
                            if(data.flag == 0){
                            info.innerHTML = \'NOT FIND BOOK\';
                            }else{
                                var tag = \'<ul><li>BookName:\'+data.bookname+\'</li><li>Autor:\'+data.autor+\'</li></ul>\';
                                info.innerHTML = tag;
                            }
                        },
                        error:function(){
                            $(\'#info\').html(\'Server Error\');
                        };
                    });
                });
            });
        </script>
    </head>
    <body>
        <div id="dv">
            <div>
                BookNumber:<input type="text" name="code" id="code"/>
                <input type="button" value="Select" id="btn1"/>
            </div>
            <div id="info"></div>
        </div>
    </body>

</html>

2.php

<?php
    $code = $_GET[\'code\'];
    $books = array();
    $books[\'sgyy\'] = array(\'bookname\'=>\'三国演义\',\'autor\'=>\'罗贯中\');
    $books[\'shz\'] = array(\'bookname\'=>\'水浒传\',\'autor\'=>\'施耐庵\');
    $books[\'xyj\'] = array(\'bookname\'=>\'西游记\',\'autor\'=>\'吴承恩\');
    $books[\'hlm\'] = array(\'bookname\'=>\'红楼梦\',\'autor\'=>\'曹雪芹\');
    
    if(array_key_exists($code, $books) == 1){//判断非空
        $book = $books[$code];
        echo json_encode($book);
    }else{
        echo \'{"flag":0}\';
    }
?>

 

 

 

 

 

1.静态script标签src属性进行跨域请求
  -<script type="text/javascript" src="文件地址"></script>
  -默认为同步请求,加异步请求输入无法加载
    -1.必须保证加载的顺序
    -2.不方便通过程序传递参数

2.动态创建script标签,通过标签的src属性发送请求(jsonp本质)
  -1.动态创建script标签是异步请求
    -利用函数调用解决
    -服务端响应的内容是函数调用

例如:

   var script = document.createElement(\'script\');
     script.src = \'http://www.snake.com/ajax/demo/Ajax20190403/test.php\';
     var head = document.getElementsByTagName(\'head\')[0];
     head.appendChild(script);
     //服务器响应的内容调用
     function foo(data){
        console.log(data);
     }

 

 

 

 

 

特此声明:如需转载请注明出处,如有疑问请及时提出以便于改正,如有侵权,联系删除,谢谢

分类:

技术点:

相关文章: