经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery » 查看文章
原生Ajax详解
来源:cnblogs  作者:bignewbie  时间:2019/4/12 9:05:15  对本文有异议

  原生Ajax发送请求:

    1.创建XMLhttpRequest对象

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

    2.准备发送

    3.执行发送动作

    4.指定回调函数

  案例:

  1.html文件

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>初识 Ajax</title>
  6. <script>
  7. window.onload = function(){
  8. var btn = document.getElementById('btn');
  9. btn.onclick = function(){
  10. var uname = document.getElementById('username').value;
  11. var pw = document.getElementById('password').value;
  12. //使用Ajax
  13. //1.创建XMLhttpRequest对象
  14. var xhr = new XMLHttpRequest();
  15. //2.准备发送
  16. xhr.open('GET','./check.php?username='+uname+'&password='+pw,true);
  17. //3.执行发送动作
  18. xhr.send(null);
  19. //4.指定回调函数
  20. xhr.onreadystatechange = function(){
  21. if(xhr.readyState == 4){
  22. if(xhr.status == 200){
  23. var data = xhr.responseText;
  24. var info = document.getElementById('info');
  25. if(data == 'ture'){
  26. info.innerHTML = 'success';
  27. }else if(data == 'false'){
  28. info.innerHTML = 'false';
  29. }
  30. }
  31. }
  32. }
  33. }
  34. }
  35. </script>
  36. </head>
  37. <body>
  38. <form >
  39. 用户名:<input type="text" id="username" /><span id="info"></span><br />
  40. 密 码:<input type="text" id="password" />
  41. <input type="button" value="登录" id="btn" />
  42. </form>
  43. </body>
  44. </html>

  2.PHP文件

  

  1. <?php
  2. $uname = $_GET['username'];
  3. $pw = $_GET['password'];
  4. if($uname == 'admin' && $pw == '123'){
  5. echo 'ture';
  6. }else{
  7. echo "false";
  8. }
  9. ?>

 

 

  1.get

    get请求参数在url中传递

  2.post

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

 

  

 

 

  

 

 

  案例:

1.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. #dv{
  8. width: 360px;
  9. height: 100px;
  10. background-color: green;
  11. position: absolute;
  12. left: 50%;
  13. top: 10px;
  14. margin-left: -180px;
  15. }
  16. </style>
  17. <script src="../jquery-1.12.2.js"></script>
  18. <script>
  19. /*
  20. *功能:
  21. *页面输入图书编号,查询服务器端的图书信息并解析
  22. *
  23. */
  24. $(function(){
  25. $('#btn1').click(function(){
  26. var code = $('#code').val();
  27. $.ajax({
  28. type:'get',
  29. url:'02.php',
  30. data:{code:code},
  31. dataType:'json',
  32. success:function(data){
  33. var info = document.getElementById('info');
  34. if(data.flag == 0){
  35. info.innerHTML = 'NOT FIND BOOK';
  36. }else{
  37. var tag = '<ul><li>BookName:'+data.bookname+'</li><li>Autor:'+data.autor+'</li></ul>';
  38. info.innerHTML = tag;
  39. }
  40. },
  41. error:function(){
  42. $('#info').html('Server Error');
  43. };
  44. });
  45. });
  46. });
  47. </script>
  48. </head>
  49. <body>
  50. <div id="dv">
  51. <div>
  52. BookNumber:<input type="text" name="code" id="code"/>
  53. <input type="button" value="Select" id="btn1"/>
  54. </div>
  55. <div id="info"></div>
  56. </div>
  57. </body>
  58.  
  59. </html>

2.php

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

 

 

 

 

 

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

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

例如:

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

 

 

 

 

 

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

原文链接:http://www.cnblogs.com/CGWTQ/p/10693413.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号