在網(wǎng)絡(luò)開發(fā)中,我們經(jīng)常會通過 HTTP 協(xié)議向服務(wù)器發(fā)送請求來獲取或修改數(shù)據(jù)。其中,GET 請求是最常見的請求方式之一。在一些場景下,我們需要向服務(wù)器發(fā)送的數(shù)據(jù)并不是傳統(tǒng)的 URL 參數(shù)形式,而是 JSON 字符串。那么,我們該如何進(jìn)行 GET 請求并附帶 JSON 字符串呢?
// 創(chuàng)建 XMLHttprequest 對象 var xhr = new XMLHttpRequest(); // 設(shè)置請求方式和請求地址(這里以傳統(tǒng)的 URL 方式請求為例) xhr.open('GET', '/api/data?key=value', true); // 設(shè)置請求頭部信息 xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); // 監(jiān)聽請求狀態(tài)變化 xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } } // 發(fā)送請求(這里附帶了 JSON 字符串) xhr.send(JSON.stringify({name: 'apple', price: 10}));
以上就是一個簡單的使用 GET 請求并附帶 JSON 字符串的示例。關(guān)鍵點在于在發(fā)送請求之前,設(shè)置了請求頭部信息的 Content-Type 值為 application/json,同時通過 JSON.stringify 方法將 JSON 對象轉(zhuǎn)換為字符串形式。在服務(wù)器中,可以通過讀取請求頭部信息的 Content-Type 值以及解析請求體中的數(shù)據(jù)來獲取附帶的 JSON 字符串?dāng)?shù)據(jù)。
除開上面的示例,還可以使用一些第三方庫或框架來處理 JSON 字符串的 GET 請求。例如,使用 jQuery 中的 AJAX 方法:
$.ajax({ url: '/api/data', type: 'GET', data: JSON.stringify({name: 'apple', price: 10}), contentType: 'application/json; charset=utf-8', success: function (data) { console.log(data); } });
以上就是使用 jQuery AJAX 方法進(jìn)行 JSON 字符串的 GET 請求。關(guān)鍵點在于在請求參數(shù)中設(shè)置了 data 和 contentType 兩個屬性值。在服務(wù)器中,使用 body-parser 中間件可以方便的解析附帶的 JSON 字符串?dāng)?shù)據(jù)。