在HTTP請(qǐng)求中,常見的請(qǐng)求方式有GET和POST。在傳輸數(shù)據(jù)時(shí),GET請(qǐng)求通常把數(shù)據(jù)放在請(qǐng)求URL的查詢參數(shù)中,而POST請(qǐng)求則是將數(shù)據(jù)放在請(qǐng)求體中。而在使用GET請(qǐng)求時(shí),我們可能會(huì)需要傳輸JSON格式的數(shù)據(jù)。那么,如何使用GET請(qǐng)求在請(qǐng)求體中發(fā)送JSON數(shù)據(jù)呢?
// 創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHttpRequest(); // 拼接請(qǐng)求URL var url = 'http://example.com/api?data=' + encodeURIComponent(JSON.stringify({id: 1, name: 'example'})); // 發(fā)送GET請(qǐng)求 xhr.open('GET', url, true); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { // 請(qǐng)求成功處理邏輯 console.log(xhr.responseText); } }; xhr.send();
上述代碼中,我們首先創(chuàng)建了一個(gè)XMLHttpRequest對(duì)象,然后拼接了包含JSON數(shù)據(jù)的請(qǐng)求URL,使用GET方法發(fā)送請(qǐng)求。在發(fā)送請(qǐng)求時(shí),需要注意數(shù)據(jù)需要使用encodeURIComponent進(jìn)行編碼,以避免對(duì)數(shù)據(jù)產(chǎn)生影響。在回調(diào)函數(shù)中,我們可以根據(jù)請(qǐng)求的響應(yīng)狀態(tài)和響應(yīng)結(jié)果進(jìn)行處理。
需要注意的是,使用GET請(qǐng)求在請(qǐng)求體中傳輸JSON數(shù)據(jù)并不是標(biāo)準(zhǔn)的HTTP協(xié)議規(guī)范,而是一些API接口特定的實(shí)現(xiàn)方式。因此,在使用時(shí),還需要根據(jù)具體的API文檔進(jìn)行調(diào)整。