最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

前端中HTTP請(qǐng)求的五種場景傳參方式詳解

 更新時(shí)間:2026年04月29日 09:29:46   作者:花滿溪  
在?Web?開發(fā)中,客戶端向服務(wù)端傳遞數(shù)據(jù)有多種方式,本文介紹五種常見的傳參方式,以及它們的適用場景,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下

在 Web 開發(fā)中,客戶端向服務(wù)端傳遞數(shù)據(jù)有多種方式。本文介紹五種常見的傳參方式,以及它們的適用場景。

為了讓讀者更好地理解每種傳參方式,文中示例均使用 Express 搭建的本地服務(wù)器進(jìn)行演示。你可以在本地啟動(dòng)服務(wù)后,通過瀏覽器或 Postman 實(shí)際發(fā)送請(qǐng)求,觀察服務(wù)端的接收效果。

場景對(duì)比

傳參方式適用場景數(shù)據(jù)類型大小限制
路徑參數(shù)獲取確定性資源,如用戶信息、商品詳情簡單字符串無限制
查詢參數(shù)搜索、過濾、分頁短數(shù)據(jù)受 URL 長度限制
x-www-form-urlencoded傳統(tǒng)表單提交簡單鍵值對(duì)較小
application/jsonRESTful API 調(diào)用復(fù)雜嵌套結(jié)構(gòu)較大
multipart/form-data文件上傳、混合數(shù)據(jù)提交文件 + 表單

一、鏈接傳參 - 路徑參數(shù)

在 URL 路徑中傳遞參數(shù)。例如:/users/{id}

// 示例:GET 請(qǐng)求
http://localhost:3000/users/123

服務(wù)端通過路徑占位符獲取參數(shù) id=123。

二、鏈接傳參 - 查詢參數(shù)

在 URL 查詢字符串中傳遞參數(shù)。查詢參數(shù)是問號(hào) ? 后的鍵值對(duì),多個(gè)參數(shù)用 & 連接。

// 示例:GET 請(qǐng)求
http://localhost:3000/search?keyword=node&page=2

服務(wù)端獲取 keyword=node,page=2。

三、請(qǐng)求體傳參 - application/x-www-form-urlencoded

POST 請(qǐng)求,請(qǐng)求頭 Content-Type 設(shè)置為 application/x-www-form-urlencoded

HTML 表單使用 method="post" 時(shí),默認(rèn)使用這種編碼方式。

<!DOCTYPE html>
<html>
<body>
    <form action="http://localhost:3000/register" method="post">
        <input type="text" name="username">
        <input type="password" name="password">
        <button>submit</button>
    </form>
</body>
</html>

提交后,瀏覽器將表單數(shù)據(jù)編碼為 username=admin&password=123456,發(fā)送到后端。

四、請(qǐng)求體傳參 - application/json

POST 請(qǐng)求,請(qǐng)求頭 Content-Type 設(shè)置為 application/json。

這種方式需要使用 JavaScript(如 fetch)發(fā)送請(qǐng)求。

<!DOCTYPE html>
<html>
<body>
    <script>
        fetch('http://localhost:3000/login', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                username: "admin",
                password: "123456",
            })
        });
    </script>
</body>
</html>

請(qǐng)求體內(nèi)容為 JSON 字符串:{"username":"admin","password":"123456"}。

五、請(qǐng)求體傳參 - multipart/form-data

POST 請(qǐng)求,請(qǐng)求頭 Content-Type 設(shè)置為 multipart/form-data。

這種方式通常用于文件上傳,也可以同時(shí)提交普通表單字段。

<!DOCTYPE html>
<html>
<body>
    <form action="http://localhost:3000/upload" method="post" enctype="multipart/form-data">
        <input type="file" accept=".jpg" name="avatar">
        <input type="text" name="username">
        <input type="password" name="password">
        <button>submit</button>
    </form>
</body>
</html>

瀏覽器自動(dòng)生成請(qǐng)求頭:Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryO1HGmt23sYZeHuMf。

boundary 后面的字符串是分隔符,用于區(qū)分不同的字段。

請(qǐng)求體格式示例:

------WebKitFormBoundaryO1HGmt23sYZeHuMf
Content-Disposition: form-data; name="avatar"; filename="avatar.jpg"
Content-Type: image/jpeg

[文件二進(jìn)制數(shù)據(jù)]
------WebKitFormBoundaryO1HGmt23sYZeHuMf
Content-Disposition: form-data; name="username"

admin
------WebKitFormBoundaryO1HGmt23sYZeHuMf
Content-Disposition: form-data; name="password"

123456
------WebKitFormBoundaryO1HGmt23sYZeHuMf--

每個(gè)字段由 boundary 分隔,字段名和字段值之間有一個(gè)空行。

六、本地服務(wù)器

以下是一個(gè) Express 服務(wù)器實(shí)現(xiàn),集成了上述五種傳參方式的處理邏輯。啟動(dòng)服務(wù)后,你可以配合前文的 HTML 頁面或 Postman 進(jìn)行測(cè)試。

環(huán)境準(zhǔn)備

npm init -y
npm i express cors multer

服務(wù)端代碼

const express = require('express');
const cors = require('cors');
const multer = require('multer');
const app = express();
const port = 3000;
app.use(cors());

// 1. 處理路由參數(shù)(URL 路徑中的參數(shù))
// 示例:GET /users/123
app.get('/users/:id', (req, res) => {
    const userId = req.params.id;
    res.json({
        message: `獲取用戶信息`,
        userId: userId
    });
});

// 2. 處理 URL 查詢參數(shù)(Query String)
// 示例:GET /search?keyword=node&page=2
app.get('/search', (req, res) => {
    const { keyword, page } = req.query;
    res.json({
        message: '查詢參數(shù)已接收',
        keyword: keyword,
        page: page || 1
    });
});

// 3. 處理表單提交的 URL 編碼參數(shù)
app.use(express.urlencoded({ extended: true }));

// 示例:POST /register,表單數(shù)據(jù)
app.post('/register', (req, res) => {
    const { username, password } = req.body;
    res.json({
        username,
        password,
    });
});

// 4. 處理 POST 請(qǐng)求的 JSON 參數(shù)(請(qǐng)求體)
// 需要配置 JSON 解析中間件
app.use(express.json());

// 示例:POST /login,請(qǐng)求體 {"username": "admin", "password": "123345"}
app.post('/login', (req, res) => {
    const { username, password } = req.body;
    res.json({
        username,
        password,
    });
});

// 5.處理單文件上傳
// 配置 multer(內(nèi)存存儲(chǔ),文件以 Buffer 形式存在)
const upload = multer({ storage: multer.memoryStorage() });

app.post('/upload', upload.single('avatar'), (req, res) => {
    // req.file 包含上傳的文件信息
    console.log('文件信息:', req.file);
    console.log('文本字段:', req.body);

    res.json({
        message: '文件上傳成功',
        filename: req.file.originalname,
        size: req.file.size,
        mimetype: req.file.mimetype
    });
});

// 啟動(dòng)服務(wù)
app.listen(port, () => {
    console.log(`start:http://localhost:${port}`);
});

啟動(dòng)與測(cè)試

運(yùn)行 node server.js 啟動(dòng)服務(wù)后,可以:

  • 訪問前文的 HTML 頁面,直接在瀏覽器中發(fā)送請(qǐng)求
  • 使用 Postman 或 curl 手動(dòng)構(gòu)造請(qǐng)求,觀察響應(yīng)結(jié)果
  • 查看終端日志,確認(rèn)服務(wù)端是否正確接收參數(shù)

到此這篇關(guān)于前端中HTTP請(qǐng)求的五種場景傳參方式詳解的文章就介紹到這了,更多相關(guān)HTTP請(qǐng)求傳參方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 結(jié)合ES6?編寫?JavaScript?設(shè)計(jì)模式中的結(jié)構(gòu)型模式

    結(jié)合ES6?編寫?JavaScript?設(shè)計(jì)模式中的結(jié)構(gòu)型模式

    這篇文章主要介紹了結(jié)合ES6編寫JavaScript?設(shè)計(jì)模式中的結(jié)構(gòu)型模式,設(shè)計(jì)模式是軟件設(shè)計(jì)中常見問題的解決方案,這些模式很容易重復(fù)使用并且富有表現(xiàn)力
    2022-07-07
  • JavaScript實(shí)現(xiàn)在頁面間傳值的方法

    JavaScript實(shí)現(xiàn)在頁面間傳值的方法

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)在頁面間傳值的方法,涉及javascript傳值的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 原生js結(jié)合html5制作簡易的雙色子游戲

    原生js結(jié)合html5制作簡易的雙色子游戲

    這篇文章主要介紹了原生js結(jié)合html5制作簡易的雙色子游戲的代碼,是個(gè)人學(xué)習(xí)練手用的,雖然寫的不太好,還是分享給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • 微信小程序?qū)崿F(xiàn)用戶登錄模塊服務(wù)器搭建

    微信小程序?qū)崿F(xiàn)用戶登錄模塊服務(wù)器搭建

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)用戶登錄模塊服務(wù)器搭建,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • js中如何對(duì)url進(jìn)行編碼和解碼

    js中如何對(duì)url進(jìn)行編碼和解碼

    這篇文章主要介紹了js中如何對(duì)url進(jìn)行編碼和解碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • JavaScript防抖與節(jié)流詳解

    JavaScript防抖與節(jié)流詳解

    防抖是一種?優(yōu)化高頻觸發(fā)事件?的技術(shù),其核心思想是在事件被頻繁觸發(fā)時(shí),只有最后一次操作會(huì)被執(zhí)行,中間的觸發(fā)會(huì)被忽略,本文給大家介紹JavaScript防抖與節(jié)流知識(shí),感興趣的朋友一起看看吧
    2025-10-10
  • JS獲取URL中的參數(shù)數(shù)據(jù)

    JS獲取URL中的參數(shù)數(shù)據(jù)

    這篇文章主要介紹了JS獲取URL中的參數(shù)數(shù)據(jù),有需要的朋友可以參考一下
    2013-12-12
  • 淺談Layui的eleTree樹式選擇器使用方法

    淺談Layui的eleTree樹式選擇器使用方法

    今天小編就為大家分享一篇淺談Layui的eleTree樹式選擇器使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • openLayer4實(shí)現(xiàn)動(dòng)態(tài)改變標(biāo)注圖標(biāo)

    openLayer4實(shí)現(xiàn)動(dòng)態(tài)改變標(biāo)注圖標(biāo)

    這篇文章主要為大家詳細(xì)介紹了openLayer4實(shí)現(xiàn)動(dòng)態(tài)改變標(biāo)注圖標(biāo),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 詳解JavaScript時(shí)間格式化

    詳解JavaScript時(shí)間格式化

    這篇文章主要介紹了詳解JavaScript時(shí)間格式化的相關(guān)資料,需要的朋友可以參考下
    2015-12-12

最新評(píng)論

中超| 泸定县| 巴中市| 舒城县| 康马县| 乐亭县| 山阴县| 互助| 五大连池市| 福州市| 合肥市| 鱼台县| 莆田市| 清苑县| 文山县| 北安市| 四子王旗| 房产| 台山市| 溧水县| 乌苏市| 肥城市| 兴业县| 岢岚县| 醴陵市| 永吉县| 成都市| 泽普县| 五河县| 铅山县| 西畴县| 无极县| 曲沃县| 永清县| 托克托县| 巴中市| 西华县| 乐至县| 通海县| 大名县| 英吉沙县|