首页 > 代码库 > 使用原生JavaScript发送ajax请求

使用原生JavaScript发送ajax请求

关于使用原生JavaScript发送异步请求给服务端。

准备工作:

代码编写工具用的是sublime 服务端使用的是wamp搭的一个本地Apache服务器,主要用来返回数据 方便测试

步骤:

浏览器端

  html标签绑定事件发送ajax请求---->

  五步操作:1 创建异步对象XMLHttpRequest;

       2 设置method url

       3 发送请求给服务端

       4 注册事件

         5 在事件中获取服务端返回的数据,进行操作。

服务器端

  1 获取请求数据

  2 返回结果给浏览器

 

下面来一个小demo1做一个简单的请求操作 点击按钮发送请求给服务器端,返回图片地址,渲染div的背景图
nobibi 上代码

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <style> 4     .div1{ 5         width: 200px; 6         height: 200px; 7         border: 1px solid red; 8         margin: 20px auto; 9     }10     .div2{11         width: 300px;12         height: 100px;13         border: 1px solid red;14         margin: 20px auto;15     }16     body{17         text-align: center;18     }19 </style>20     <head>21         <meta charset="utf-8">22     </head>23     <body>24     <div class=‘div1‘></div>25     <div class=‘div2‘></div>26     <input type="button" value="baby" class=‘starBtn‘>27     <input type="button" value="hxm" class=‘starBtn‘>28     <input type="button" value="lh" class=‘starBtn‘>29     </body>30 </html>31 <script>32     //获取按钮list33     var btnList = document.querySelectorAll(.starBtn);34         //循环绑定点击事件35     for (var i = 0; i < btnList.length; i++) {36         btnList[i].onclick = function(){37                         //新建异步处理对象38             var ajax = new XMLHttpRequest();39                         //设置请求类型为post,请求的页面为server1.php40             ajax.open(post,server1.php);41         //因为是post请求所以必须加上setRequestHeader(get请求可以忽略)42         ajax.setRequestHeader(Content-type,application/x-www-form-urlencoded);43                //请求所带的参数 name=this.value44         ajax.send(name=+this.value);45                //绑定onreadystatechange事件46         ajax.onreadystatechange=function(){47                //判断如果请求的状态是否成功48             if (ajax.readyState==4&&ajax.status==200) {49               //根据返回值ajax.responseText操作dom元素更改div的背景图片        50 document.querySelector(.div1).style.background = url(+ajax.responseText+) no-repeat center/cover;51                 document.querySelector(.div2).innerHTML = ajax.responseText52             };53         }54         }55     };56 57 </script>                                

浏览器端代码结束。

下面是服务端代码,服务端是用php写的简单几句

<?php         //获取post请求的数据    $key = $_POST[‘name‘];    //关系数组    $starArr = array(        ‘baby‘=>‘images/baby.jpg‘,        ‘hxm‘=>‘images/hxm.jpg‘,        ‘lh‘=>‘images/lh.jpg‘        );        $value = $starArr[$key];//返回图片地址    echo $value; ?>

至此 一个简单的使用原生JavaScript写的异步请求 完成。

使用原生JavaScript发送ajax请求