原生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); }
特此声明:如需转载请注明出处,如有疑问请及时提出以便于改正,如有侵权,联系删除,谢谢