HTTP - Content-Type

参考博客:Content-Type 详解Content-Type的理解

HTTP请求头与响应头中含有的Content-Type字段,用于规定传输数据在发送与接受时,服务器与客户端对数据的如何解析

常用的三种类型:

  • application/x-www-form-urlencoded:form表单默认提交方式,以键值对的形式传递参数,如:a=1&b=2(序列化),支持GET/POST请求
  • multipart/form-data:常用于文件上传,传递二进制数据,请求体被分割成多部分,每部分使用 --boundary分割
  • application/json:json字符串形式传递

如果后端定义的Content-Type=application/x-www-form-urlencoded,则需要在前端项目中可以引入qs模块对post请求发送的json数据进行序列化处理,否则后端将接收不到错误

import axios from 'axios'
import qs from 'qs'

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'

export function post(url, params) {
  return new Promise((resolve, reject) => {
    console.log(params) // {a: 1, b: 2}
    console.log(qs.stringify(params)) // a=1&b=2
    axios.post(url, qs.stringify(params))
      .then(res => {
        resolve(res.data)
      })
      .catch(err => {
        reject(err.data)
      })
  })
}
发布了93 篇原创文章 · 获赞 20 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/sinat_33184880/article/details/103414077