Ajax如何實現從前端不刷新頁面就可以到后端取到數據


        提到axaj很多人總說很難,什么回調函數呀等等就讓人心煩,其實懂得ajax在js里面是如何實現向服務器請求數據的原理,那么理解ajax也就不是很難了,現在我們一起來看看。  

       ajax作用:ajax技術的目的是讓javascript發送http請求,與后台通信,獲取數據和信息。實現前后端分離。ajax技術的原理是實例化xmlhttp對象,使用此對象與后台通信。ajax通信的過程不會影響后續javascript的執行,從而實現異步。   

        在js里面ajax主要解決的問題就是:不刷新當前頁面,把某些數據傳遞給服務器,把某些數據從服務器拿回客戶端。

 下面就是具體代碼了。我們寫一個程序讓其前后端分離,前端操作可以讓后端得到響應,並從后端取得響應的數據

一·在html里的五步走策略:     

1.建立AJAX核心對象
var xhr=new XMLHttpRequest();
 
2.添加預加載;指如果xhr對象的預備好的狀態發生了變化時,觸發函數。
xhr.addEventListener("load",loadHandler);
 
3.建立連接
    //
建立連接里參數問題:
語法:    xhr.open("get", url, true);
 備注:open() 方法中   第1個參數指請求的發送方式,值為get或post。     第2個參數指請求的url路徑就是你寫的php文件 的路徑,?后面是所攜帶get所要獲得的相關信息。     第3個參數指請求是異步還是同步,如果寫true表示異步(默認true), 寫false表示同步。
4.向服務器發起請求
xhr.send();     
 
語法:    xhr.send();
 備注:     如果是get方式發送請求,send()命令中不用寫任何參數         傳遞的數據可以寫在url中,服務器用$_GET[“參數名”]接收。    
 如果是post方式發送請求,需要設置請求頭才能正確把數據傳遞給后端頁面。 我們這里采用的是get方式,所以不用寫任何參數。      
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');       xhr.send(“數據名1=數據值&數據名2=數據值”),服務器用$_POST[“參數名”]接收。
5.聲明預加載函數;接收響應 
 
function loadHandler(){
 獲取並使用服務器的響應
console.log(xhr.response);
 
}

二· 在php文件里面

三步驟:  

   header("content-type:text/html;charset=utf-8");
   設置字符編碼
header("Access-Control-Allow-Origin:*");
設置Access-Control-Allow-Origin來實現跨域訪問(因為不同的域名默認不允許之間不可以相互通信)
echo $_GET["user"]."今天心情很好";
所要交給前台的數據
四.實現訪問:
    將寫好的php文件放入到phpStydy  的 www的文件夾內,如下圖:
    1.找到phpStyle的安裝目錄
  

  2.打開找到www文件夾

 

 3.將你寫好的PHP文件復制到www文件夾里面去,如我剛寫的index.php文件;

4.現在實現簡單的ajax的訪問;

    現在運行你的html代碼:

此時就會實現頁面不刷新,就可以訪問php的數據了

 


免責聲明!

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



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