GET請求通常用于從服務(wù)器獲取數(shù)據(jù)。在GET請求中,參數(shù)是通過URL傳遞的。但是,某些情況下您需要向服務(wù)器傳遞JSON數(shù)據(jù)。那么,GET請求是否支持傳遞JSON呢?
GET請求本質(zhì)上不能直接傳遞JSON數(shù)據(jù),因為它們將數(shù)據(jù)作為查詢字符串附加到URL上。不過,您可以使用以下兩種方法將JSON數(shù)據(jù)傳遞給GET請求:
1.將JSON數(shù)據(jù)加密并發(fā)送到服務(wù)器
您可以使用JavaScript的encodeURIComponent()函數(shù)將JSON數(shù)據(jù)編碼,并將其附加到URL的查詢字符串中,如下所示:
var data = { name: "John", age: 30 };
var json = JSON.stringify(data);
var url = "https://www.example.com?data=" + encodeURIComponent(json);
fetch(url);
2.將JSON數(shù)據(jù)發(fā)送到服務(wù)器并在服務(wù)器上進行解析
如果您不想將數(shù)據(jù)加密,則可以使用POST請求將JSON數(shù)據(jù)發(fā)送到服務(wù)器,并在服務(wù)器端進行解析。服務(wù)器端可以使用任何語言(如PHP,Java,Python等)來解析POST請求中的JSON數(shù)據(jù),如下所示:
app.post("/data", (req, res) =>{
const data = JSON.parse(req.body.data);
res.send(data);
});
var data = { name: "John", age: 30 };
fetch("https://www.example.com/data", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ data }),
});
綜上所述,GET請求本身不支持直接傳遞JSON數(shù)據(jù)。但是,您可以使用上述方法將JSON數(shù)據(jù)傳遞給服務(wù)器。