在Web開發中,HTTP請求有兩種方式:GET和POST。GET請求是直接在URL中傳參,而POST請求是通過請求體傳參。在前后端分離的架構中,我們通常使用GET請求來獲取數據。使用GET請求傳遞JSON參數時,需要將JSON對象序列化為字符串,并將其作為URL參數傳遞。
// JSON對象 var param = { name: 'Tom', age: 26 }; // 序列化JSON對象 var str = JSON.stringify(param); // 拼接URL參數 var url = '/api/userInfo?' + encodeURIComponent(str); // 發送GET請求 fetch(url, { method: 'GET' }).then(response =>{ return response.json(); }).then(data =>{ console.log(data); });
在代碼中,我們首先定義了一個JSON對象param,然后將它序列化為字符串str。接著,我們使用encodeURIComponent函數對字符串進行編碼,以避免特殊字符對URL的影響。最后,將編碼后的字符串作為URL參數拼接到請求URL中,通過fetch函數發送GET請求。在服務器端,我們需要解析URL參數,并將其轉化為JSON對象,以獲取參數。
// Node.js服務器例子 var http = require('http'); var url = require('url'); http.createServer(function (req, res) { var queryObj = url.parse(req.url, true).query; var paramStr = decodeURIComponent(queryObj.param); var paramObj = JSON.parse(paramStr); res.writeHead(200, {'Content-Type': 'application/json'}); res.end(JSON.stringify(paramObj)); }).listen(8080);
在服務器端,首先使用url模塊解析URL參數,將其作為queryObj對象返回。然后,使用decodeURIComponent函數對URL參數進行解碼,并使用JSON.parse函數將其轉化為JSON對象paramObj,以獲取參數。最后,使用JSON.stringify函數將paramObj對象轉化為字符串,并作為響應體返回給客戶端。
上一篇python 數組的數量
下一篇python 數組的切片