在HTTP請求中,GET請求是最常見的一種請求方式。而對于GET請求發送JSON字符串,也是一個很常見的需求。下面就簡要介紹一下GET請求如何發送JSON字符串。
GET請求發送JSON字符串的方法,其實是將JSON字符串作為URL的參數來傳遞的,具體步驟如下:
- 將JSON字符串轉換為URL編碼格式的字符串
- 將URL編碼格式的字符串作為URL的參數
- 發送GET請求
首先,我們需要將JSON字符串轉換為URL編碼格式的字符串。可以使用JavaScript中的encodeURIComponent()方法來完成,示例代碼如下:
var jsonStr = '{"name":"張三","age":18}'; var encodedStr = encodeURIComponent(jsonStr); console.log(encodedStr); // "%7B%22name%22%3A%22%E5%BC%A0%E4%B8%89%22%2C%22age%22%3A18%7D"
該方法將JSON字符串中的特殊字符進行轉義,比如空格會被轉義成%20、雙引號會被轉義成%22等。
接下來,我們將轉義后的字符串作為URL的參數。假設我們要向服務端發送一個名為user的GET請求,那么URL可以按以下方式拼接:
var url = "http://example.com/api/user?data=" + encodedStr;
這里的“http://example.com/api/user”是服務端提供的接口地址,“data”是接口中要接收JSON字符串的參數名。
最后,我們通過發送GET請求來將JSON字符串發送給服務端。在瀏覽器中,可以使用XMLHttpRequest對象來發送請求,示例代碼如下:
var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if(xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } }; xhr.open("GET", url, true); xhr.send();
這里的xhr對象就是一個XMLHttpRequest實例,我們通過調用open方法打開一個GET請求,然后將拼接好的URL作為參數傳入。最后調用send方法來發送請求。
總的來說,GET請求發送JSON字符串并不難,只需要將JSON字符串轉換為對應的URL編碼格式,并將該字符串作為URL的參數即可。同時也需要注意使用XMLHttpRequest對象來發送GET請求。