欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端往后端傳遞參數(shù)的方式有哪些舉例詳解

 更新時(shí)間:2025年03月04日 08:28:11   作者:YiHanXii  
這篇文章主要介紹了前端向后端傳遞參數(shù)的多種方式,包括URL參數(shù)(查詢參數(shù)、路徑參數(shù))、請(qǐng)求體(JSON數(shù)據(jù)、表單數(shù)據(jù)、文件上傳)、請(qǐng)求頭和Cookie,并總結(jié)了每種方式的適用場(chǎng)景,需要的朋友可以參考下

前端往后端傳遞參數(shù)的方式有多種,主要根據(jù)傳遞的上下文(如 URL、請(qǐng)求體、請(qǐng)求頭等)以及所使用的 HTTP 方法來(lái)決定。

1. URL 參數(shù)

1.1. 查詢參數(shù)(Query Parameters)

  • 定義
    • 通過(guò) URL 的查詢字符串傳遞參數(shù)。
    • 查詢字符串的格式通常為 key=value,多個(gè)參數(shù)用 & 分隔。
  • 示例
    • URL: http://example.com/api/user?id=123&name=John
    • 后端獲取參數(shù):
      • 在 Java(Spring Boot)中:@RequestParam
        @GetMapping("/api/user")
        public ResponseEntity<User> getUser(@RequestParam("id") int id, @RequestParam("name") String name) {
            // 參數(shù) id 和 name 會(huì)自動(dòng)解析
            return ResponseEntity.ok(...);
        }
        
  • 特點(diǎn)
    • 參數(shù)是明文的,容易被看到。
    • 適合傳遞少量的、不敏感的數(shù)據(jù),例如過(guò)濾條件、排序字段等。

1.2. 路徑參數(shù)(Path Parameters)

  • 定義
    • 參數(shù)直接作為 URL 路徑的一部分傳遞。
  • 示例
    • URL: http://example.com/api/user/123 (123 是路徑參數(shù))
    • 后端獲取參數(shù):
      • 在 Java(Spring Boot)中:@PathVariable
        @GetMapping("/api/user/{id}")
        public ResponseEntity<User> getUser(@PathVariable("id") int id) {
            // 參數(shù) id 會(huì)自動(dòng)解析
            return ResponseEntity.ok(...);
        }
        
  • 特點(diǎn)
    • 參數(shù)以路徑的形式傳遞,直觀且便于 RESTful API 的設(shè)計(jì)。
    • 常用于標(biāo)識(shí)特定資源的參數(shù)(如 ID)。

2. 請(qǐng)求體(Request Body)

2.1. JSON 數(shù)據(jù)

  • 定義
    • 前端通過(guò) JSON 格式的字符串將參數(shù)傳遞到后端,通常用于 POST、PUTPATCH 等請(qǐng)求方法。
  • 示例
    • 請(qǐng)求體內(nèi)容(JSON):
      {
        "id": 123,
        "name": "John",
        "email": "john@example.com"
      }
      
    • 前端發(fā)送:
      fetch('http://example.com/api/user', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ id: 123, name: 'John', email: 'john@example.com' })
      });
      
    • 后端獲取參數(shù):
      • 在 Java(Spring Boot)中:@RequestBody
        @PostMapping("/api/user")
        public ResponseEntity<User> createUser(@RequestBody User user) {
            // 參數(shù) user 會(huì)自動(dòng)綁定
            return ResponseEntity.ok(...);
        }
        
  • 特點(diǎn)
    • 格式靈活,適合傳遞復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如對(duì)象、數(shù)組等)。
    • 是現(xiàn)代前后端分離項(xiàng)目中最常用的方式之一。

2.2. 表單數(shù)據(jù)

  • 定義
    • 前端通過(guò)表單提交鍵值對(duì)形式的數(shù)據(jù)。
  • 示例
    • 表單形式:
      <form action="http://example.com/api/user" method="POST">
          <input type="text" name="name" value="John" />
          <input type="email" name="email" value="john@example.com" />
          <button type="submit">Submit</button>
      </form>
      
    • 前端使用 application/x-www-form-urlencoded
      const data = new URLSearchParams();
      data.append('name', 'John');
      data.append('email', 'john@example.com');
      
      fetch('http://example.com/api/user', {
        method: 'POST',
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
        body: data.toString()
      });
      
    • 后端獲取參數(shù):
      • 在 Java(Spring Boot)中:@RequestParam 或 @ModelAttribute
        @PostMapping("/api/user")
        public ResponseEntity&lt;User&gt; createUser(@RequestParam String name, @RequestParam String email) {
            // 參數(shù) name 和 email 會(huì)自動(dòng)解析
            return ResponseEntity.ok(...);
        }
        
  • 特點(diǎn)
    • 簡(jiǎn)單易用,但對(duì)于復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如嵌套對(duì)象、數(shù)組)不適合。
    • 表單數(shù)據(jù)默認(rèn)編碼為 application/x-www-form-urlencoded

2.3. 文件上傳

  • 定義
    • 通過(guò) multipart/form-data 傳遞文件或其他表單數(shù)據(jù)。
  • 示例
    • 表單形式:
      <form action="http://example.com/api/upload" method="POST" enctype="multipart/form-data">
          <input type="file" name="file" />
          <button type="submit">Upload</button>
      </form>
      
    • 前端發(fā)送:
      const formData = new FormData();
      formData.append('file', fileInput.files[0]);
      
      fetch('http://example.com/api/upload', {
        method: 'POST',
        body: formData
      });
      
    • 后端獲取參數(shù):
      • 在 Java(Spring Boot)中:@RequestParam 或 MultipartFile
        @PostMapping("/api/upload")
        public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
            // 獲取文件內(nèi)容
            return ResponseEntity.ok("File uploaded successfully!");
        }
        
  • 特點(diǎn)
    • 適合傳遞文件數(shù)據(jù),支持文本、文件混合上傳。
    • 表單需要設(shè)置 enctype="multipart/form-data"。

3. 請(qǐng)求頭(Headers)

3.1. 自定義請(qǐng)求頭

  • 定義
    • 前端通過(guò) HTTP 請(qǐng)求頭傳遞參數(shù)。
  • 示例
    • 前端發(fā)送:
      fetch('http://example.com/api/user', {
        method: 'GET',
        headers: {
          'Authorization': 'Bearer token123',
          'Custom-Header': 'CustomValue'
        }
      });
      
    • 后端獲取參數(shù):
      • 在 Java(Spring Boot)中:@RequestHeader
        @GetMapping("/api/user")
        public ResponseEntity<User> getUser(@RequestHeader("Authorization") String authToken) {
            // 參數(shù) authToken 會(huì)自動(dòng)解析
            return ResponseEntity.ok(...);
        }
        
  • 特點(diǎn)
    • 適合傳遞與請(qǐng)求相關(guān)的元數(shù)據(jù),例如認(rèn)證信息(Authorization)、客戶端信息(User-Agent)等。
    • 不適合傳遞大數(shù)據(jù)量的參數(shù)。

4. Cookie

  • 定義
    • 參數(shù)存儲(chǔ)在瀏覽器的 Cookie 中,前端通過(guò)設(shè)置 Cookie 傳遞給后端。
  • 示例
    • 前端設(shè)置 Cookie:
      document.cookie = "userId=123; path=/";
      
    • 后端獲取參數(shù):
      • 在 Java(Spring Boot)中:@CookieValue
        @GetMapping("/api/user")
        public ResponseEntity<User> getUser(@CookieValue("userId") String userId) {
            // 參數(shù) userId 會(huì)自動(dòng)解析
            return ResponseEntity.ok(...);
        }
        
  • 特點(diǎn)
    • 參數(shù)會(huì)自動(dòng)附帶在每次請(qǐng)求中(如果 Cookie 的域和路徑匹配)。
    • 常用于存儲(chǔ)用戶會(huì)話信息。
    • 不適合存儲(chǔ)敏感數(shù)據(jù),需結(jié)合 HTTPS 和安全標(biāo)志(HttpOnly、Secure)。

5. WebSocket 或其他協(xié)議

  • 前端通過(guò) WebSocket 或其他通信協(xié)議傳遞參數(shù),適用于實(shí)時(shí)通信場(chǎng)景。
  • 示例:
    • WebSocket 通信:
      socket.send(JSON.stringify({ type: 'message', content: 'Hello' }));
      
    • 后端通過(guò)監(jiān)聽(tīng)解析傳遞的消息。

總結(jié)

前端往后端傳遞參數(shù)的方式選擇取決于具體的場(chǎng)景需求:

方式適用場(chǎng)景
URL 查詢參數(shù)適合傳遞少量、不敏感的數(shù)據(jù),如分頁(yè)參數(shù)、搜索條件等。
URL 路徑參數(shù)適合 RESTful API,用于標(biāo)識(shí)特定資源(如用戶 ID)。
JSON 請(qǐng)求體現(xiàn)代 Web 開(kāi)發(fā)中最常用,適合傳遞復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
表單數(shù)據(jù)簡(jiǎn)單表單提交,適合傳遞少量鍵值對(duì)。
文件上傳文件和其他表單混合上傳。
請(qǐng)求頭傳遞元數(shù)據(jù)(如認(rèn)證令牌、客戶端信息)。
Cookie用戶會(huì)話信息和狀態(tài)保持。

根據(jù)實(shí)際需求選擇合適的方式即可。

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

相關(guān)文章

  • SpringBoot中@ConfigurationProperties 配置綁定

    SpringBoot中@ConfigurationProperties 配置綁定

    本文主要介紹了SpringBoot中@ConfigurationProperties 配置綁定,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • log4j2動(dòng)態(tài)修改日志級(jí)別及拓展性使用詳解

    log4j2動(dòng)態(tài)修改日志級(jí)別及拓展性使用詳解

    這篇文章主要介紹了log4j2動(dòng)態(tài)修改日志級(jí)別及拓展性使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Java 8 開(kāi)發(fā)的 Mybatis 注解代碼生成工具

    Java 8 開(kāi)發(fā)的 Mybatis 注解代碼生成工具

    MybatisAnnotationTools 是基于 Java8 開(kāi)發(fā)的一款可以用于自動(dòng)化生成 MyBatis 注解類的工具,支持配置數(shù)據(jù)源、類路徑,表名去前綴、指定類名前后綴等功能.這篇文章主要介紹了Java 8 開(kāi)發(fā)的 Mybatis 注解代碼生成工具 ,需要的朋友可以參考下
    2019-07-07
  • spring security集成cas實(shí)現(xiàn)單點(diǎn)登錄過(guò)程

    spring security集成cas實(shí)現(xiàn)單點(diǎn)登錄過(guò)程

    這篇文章主要介紹了spring security集成cas實(shí)現(xiàn)單點(diǎn)登錄過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫(kù)連接池原理解析

    SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫(kù)連接池原理解析

    這篇文章主要介紹了SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫(kù)連接池原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • springboot對(duì)接支付寶支付接口(詳細(xì)開(kāi)發(fā)步驟總結(jié))

    springboot對(duì)接支付寶支付接口(詳細(xì)開(kāi)發(fā)步驟總結(jié))

    這篇文章主要介紹了springboot對(duì)接支付寶支付接口(詳細(xì)開(kāi)發(fā)步驟總結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Mybatis Plus條件構(gòu)造器ConditionConstructor用法實(shí)例解析

    Mybatis Plus條件構(gòu)造器ConditionConstructor用法實(shí)例解析

    這篇文章主要介紹了Mybatis Plus條件構(gòu)造器ConditionConstructor用法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Spring 動(dòng)態(tài)代理實(shí)現(xiàn)代碼實(shí)例

    Spring 動(dòng)態(tài)代理實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了Spring 動(dòng)態(tài)代理實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java利用PDFBox實(shí)現(xiàn)PDF文檔基本操作

    Java利用PDFBox實(shí)現(xiàn)PDF文檔基本操作

    這篇文章主要為大家詳細(xì)介紹了java如何利用PDFBox實(shí)現(xiàn)PDF文檔基本操作,例如創(chuàng)建PDF文檔、加載PDF文檔、獲取總頁(yè)數(shù)等,需要的小伙伴可以參考下
    2023-11-11
  • SpringBoot @Autowired注入為空的情況解讀

    SpringBoot @Autowired注入為空的情況解讀

    這篇文章主要介紹了SpringBoot @Autowired注入為空的情況解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論