post请求中的Content-Type

本文详细介绍了POST请求中Content-Type的三种常见形式:application/json、application/x-www-form-urlencoded及multipart/form-data,并给出了针对不同Content-Type的前端实现示例。

在POST请求中的 Content-Type 常见的有以下3种形式:
application/json 请求体中的数据会以json字符串的形式发送到后端(axios默认)
application/x-www-form-urlencoded 请求体中的数据会以普通表单形式(键值对)发送到后端
multipart/form-data 它会将请求体的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。


后端接受application/x-www-form-urlencoded
方法一:用 URLSearchParams传递参数,代码简单,省事(需要注意的是: URLSearchParams 不支持所有的浏览器,但是总体的支持情况还是 OK 的,所以优先推荐这种简单直接的解决方案)

let param = new URLSearchParams()
param.append('username', 'admin')
param.append('pwd', 'admin')
axios({
    method: 'post',
    url: '/api/lockServer/search',
    data: param
})

方法二
配置axios请求头中的content-type为指定类型,将参数转换为query参数, 利用qs(引入 qs ,这个库是 axios 里面包含的,不需要再下载了。)

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; 
或者 {headers:{'Content-Type':'application/x-www-form-urlencoded'}}

import Qs from 'qs'
let data = {
    "username": "cc",
    "psd": "123456"
}
axios({
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    method: 'post',
    url: '/api/lockServer/search',
    data: Qs.stringify(data)
})

后端接受Content-Type: multipart/form-data
对于这种类型的数据,我们常见前端页面上传个人图像,然后点击保存发送后端修改原始数据。解决办法下:

 let params = new FormData()
        params.append('file', this.file)
        params.append('id', localStorage.getItem('userID'))
        params.append('userName', this.name)
        params.append('sex', this.sex)
        params.append('mobile', this.phone)
        params.append('email', this.email)
        params.append('qq', this.qq)
        params.append('weChat', this.WeChat)

        axios.post(URL, params, {headers: {'Content-Type': 'multipart/form-data'}}).then(res => {
          if (res.data.code === 0) {
            this.$router.go(-1)
          }
        }).catch(error => {
          alert('更新用户数据失败' + error)
        })

后端接受Content-Type: application/json
这种是axios默认的请求数据类型,我们只需将参数序列化json字符串进行传递即可,无需多余的配置。

### 回答1: 在进行POST请求时,需要设置Content-Type头部信息,以指定请求体的数据类型。常见的Content-Type类型包括application/json、application/x-www-form-urlencoded、multipart/form-data等。具体的设置方法可以参考所使用的编程语言或框架的文档。 ### 回答2: POST请求中,Content-Type是一种HTTP请求头部信息,用于指示请求体中所包含数据的类型。设置正确的Content-Type信息可以使服务器正确解析请求中的数据。从而避免可能发生的错误或数据丢失的情况。 Post请求设置Content-Type的使用方法有很多种,常用的有以下几种: 1、application/x-www-form-urlencoded:这是默认的Content-Type类型,表明数据是以普通表单形式提交的,且数据存储在请求的正文中。即使不显式指定这个类型,POST请求Content-Type也是默认设置为它的。 2、multipart/form-data:当需要上文件时,应该将Content-Type设置为multipart/form-data,这会使用mime类型输,其中数据的各个部分由一定的边界符进行分隔。 3、application/json:请求中的数据是Json格式时,需要将Content-Type设置为application/json。 4、text/plain:当数据是纯文本格式时,可以将Content-Type设置为text/plain。 5、其他类型:根据具体的需求,也可以设置其他类型来输数据。 总之,正确的Content-Type设置对于Post请求来说非常重要。对于Web开发者来说,一定要仔细阅读API文档,了解具体API要求的Content-Type类型,以确保请求的正文以正确的格式进行输。 ### 回答3: 在Web开发中,我们经常需要发送POST请求来向服务器提交数据。在发送POST请求时,我们需要设置Content-Type头部字段来告诉服务器发送的数据是什么格式。 Content-Type头部字段指示发送的实体数据的媒体类型。常见的Content-Type类型包括: 1. application/x-www-form-urlencoded:表示数据以键值对的形式进行编码,常用于HTML表单提交。 2. application/json:表示发送的数据是JSON格式的,常用于RESTful API接口。 3. multipart/form-data:表示发送的数据是多部分的,包含多个文件和文本字段,常用于文件上。 4. text/plain:表示发送的数据是纯文本,没有格式和样式,常用于请求和响应的正文。 设置Content-Type头部字段的方法有两种: 1. 直接在请求头中设置Content-Type字段。 例如: headers = {"Content-Type": "application/json"} requests.post(url, headers=headers, json=data) 2. 使用requests库中的函数来设置Content-Type字段。 例如: requests.post(url, json=data, headers={"Content-Type": "application/json"}) 在设置Content-Type时,我们需要根据接口的要求来选择合适的类型,确保数据能够正确地输和处理。同时,需要注意Content-Type的大小写和格式,不同类型之间需要使用不同的分隔符和编码方式。只有正确设置Content-Type,才能保证POST请求的有效性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值