Ajax-JS

Ajax:異步交互傳輸技術 ----就是用來與後臺交互數據用的php

GET請求方式:經過URL地址傳遞,其傳輸數據也在URL地址中 ,通常是以字符串形式傳遞接收,安全性相對不過高後端

POST請求方式:經過瀏覽器內部傳輸,通常在send()方法前面要添加頭文件即setRequestHeader(),數據由send()方法藉由參數形式傳遞,傳遞數據格式多,安全性相對高點數組

 

發送請求(get和post的區別):瀏覽器

send(要發送的數據):發送請求
中文編碼
緩存
POST:setRequestHeader(類型, 內容):設置請求頭
"Content-Type","application/x-www-form-urlencoded」

緩存

數據類型(返回數據的處理):
服務器返回給我們的真正數據
XML、HTML、JSON
JSON的寫法
Eval解析JSON的時候須要注意的地方
JSON.parse() : 字符串解析成對象

安全

後端數據的接收:
$_GET
- 經過URL傳遞給該腳本的變量的數組
$_POST
- 經過HTTP POST方法(表單)傳遞給該腳本的變量的數組
先後臺鍵名和傳輸方式必須一致
數據傳輸方式
數據獲取方式

服務器

        var xhr = null;
        try {
            xhr = new XMLHttpRequest();
        } catch (e) {
            xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }
        
        xhr.open('post','2.post.php',true);
        //post方式,數據放在send()裏面做爲參數傳遞
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明發送的數據類型
        //post沒有緩存問題
        //無需編碼
        xhr.send('username=劉偉&age=30');
        
        xhr.onreadystatechange = function() {
            
            if ( xhr.readyState == 4 ) {
                if ( xhr.status == 200 ) {
                    alert( xhr.responseText );
                } else {
                    alert('出錯了,Err:' + xhr.status);
                }
            }
            
        }app

 

get緩存問題:dom

來源:每次都是發送同一個URL地址,發送訪問請求後,會有一個緩存,以後仍是一樣的一個URL地址,這時候,瀏覽器就會直接去讀取緩存,不會再向服務器發送請求異步

解決方法:‘2.get.php?username=leo&age=30&’+new Date().getTime();或者加個Math.random()隨機函數;在URL問號後面鏈接一個隨機數時間戳

get傳輸中文有亂碼問題: URL中傳輸數據,使用編碼 encodeURL     ‘2.get.php?username='+encodeURI('劉偉')+'&age=30&’+new Date().getTime();

 

post方式:

xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');聲明數據發送的數據類型

post方式,數據放在send()裏面做爲參數傳遞

沒有中文亂碼問題,由於在請求頭中已經告訴後臺的格式了

相關文章
相關標籤/搜索