當(dāng)我們?cè)谑褂肑avaScript進(jìn)行前端開(kāi)發(fā)的時(shí)候,很常見(jiàn)的就是需要與后臺(tái)進(jìn)行數(shù)據(jù)交互,這就需要我們掌握如何進(jìn)行后臺(tái)傳值。
在前端開(kāi)發(fā)中,有兩種常見(jiàn)的情況需要進(jìn)行后臺(tái)傳值。第一種情況是向后臺(tái)發(fā)起請(qǐng)求并接收響應(yīng)數(shù)據(jù),比如向后臺(tái)發(fā)起一個(gè)GET請(qǐng)求獲取某個(gè)數(shù)據(jù);第二種情況是向后臺(tái)發(fā)送POST請(qǐng)求,上傳數(shù)據(jù)或表單信息。下面我們針對(duì)這兩種情況進(jìn)行詳細(xì)介紹。
GET請(qǐng)求
GET請(qǐng)求是指瀏覽器通過(guò)URL地址向后臺(tái)發(fā)送請(qǐng)求并接收響應(yīng)數(shù)據(jù)。在JavaScript中,我們可以通過(guò)使用XMLHttpRequest對(duì)象來(lái)進(jìn)行GET請(qǐng)求,其核心代碼如下:
var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://www.example.com/api/getData?id=123', true); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { console.log(xhr.responseText); } }
在以上代碼中,我們通過(guò)XMLHttpRequest對(duì)象打開(kāi)了一個(gè)GET請(qǐng)求,并指定了需要請(qǐng)求的URL地址。當(dāng)狀態(tài)發(fā)生變化時(shí),我們判斷請(qǐng)求是否成功,如果狀態(tài)是4并且HTTP狀態(tài)碼是200,表示請(qǐng)求成功,并打印響應(yīng)數(shù)據(jù)。
POST請(qǐng)求
POST請(qǐng)求是指瀏覽器向后臺(tái)發(fā)送數(shù)據(jù)并接收響應(yīng)數(shù)據(jù)。在JavaScript中,我們同樣可以使用XMLHttpRequest對(duì)象來(lái)進(jìn)行POST請(qǐng)求,其核心代碼如下:
var xhr = new XMLHttpRequest(); xhr.open('POST', 'http://www.example.com/api/saveData', true); xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); xhr.send(JSON.stringify({ id: 123, name: '張三' })); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { console.log(xhr.responseText); } }
在以上代碼中,我們通過(guò)XMLHttpRequest對(duì)象打開(kāi)了一個(gè)POST請(qǐng)求,并指定了需要請(qǐng)求的URL地址。在發(fā)送請(qǐng)求前,我們通過(guò)setRequestHeader方法設(shè)置請(qǐng)求頭部信息,以便告訴后臺(tái)我們發(fā)送的是JSON數(shù)據(jù)。通過(guò)JSON.stringify方法將數(shù)據(jù)序列化為JSON格式后發(fā)送請(qǐng)求,當(dāng)狀態(tài)發(fā)生變化時(shí),我們同樣判斷請(qǐng)求是否成功,并打印響應(yīng)數(shù)據(jù)。
總結(jié)
以上就是JavaScript與后臺(tái)傳值的兩種常見(jiàn)情況,分別是GET請(qǐng)求和POST請(qǐng)求。在進(jìn)行這兩種請(qǐng)求時(shí),需要注意請(qǐng)求的URL地址、請(qǐng)求方法、請(qǐng)求頭部信息、發(fā)送的數(shù)據(jù)等細(xì)節(jié)問(wèn)題,并根據(jù)后臺(tái)對(duì)數(shù)據(jù)的處理方式進(jìn)行相應(yīng)的數(shù)據(jù)解析和處理。只有熟練掌握這些知識(shí),我們才能進(jìn)行前端開(kāi)發(fā)中更加復(fù)雜的數(shù)據(jù)交互操作。