使用原生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     //獲取按鈕list
33     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.php
40             ajax.open('post','server1.php');
41         //因為是post請求所以必須加上setRequestHeader(get請求可以忽略)
42         ajax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
43                //請求所帶的參數 name=this.value
44         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.responseText
52             };
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寫的異步請求 完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM