美文网首页
axios中Accept, content-type

axios中Accept, content-type

作者: sisselxie | 来源:发表于2020-12-24 10:08 被阅读0次

    HTTP协议中的Accept与Content-Type的区别

    HTTP协议的内容,其中,我们经常会用到 Accept 与 Content-Type,那么这两者有什么区别和联系呢?

    1. 类型不同

    类型不同Accept属于请求头, Content-Type属于实体头。
    Http报头分为通用报头,请求报头,响应报头和实体报头。

    请求方的HTTP报头结构:通用报头|请求报头|实体报头
    响应方的HTTP报头结构:通用报头|响应报头|实体报头

    1. 作用不同

    Accept代表发送端(客户端)希望接受的数据类型。 比如:Accept:text/xml; 代表客户端希望接受的数据类型是xml类型。

    Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型。 比如:Content-Type:text/html; 代表发送端发送的数据格式是html。

    二者合起来, Accept:text/xml; Content-Type:text/html ,即代表希望接受的数据类型是xml格式,本次请求发送的数据的数据格式是html。

    content-type application/x-www-form-urlencoded & application/json

    前端向后端传输数据时,如果是get传输,直接传在url后;如果是post传输,则在请求体body中传输。

    body中的数据格式又有两种,一种是 json 数据格式,另一种是 字符串。具体要用哪种格式取决于后端入参的格式。

    如果后端接收json数据类型,post 的 headers 需要设置 { ‘content-type’: ’application/json’ },传给后端的数据就形如 { ‘name’:’edward’, ‘age’:’25’ }

    如果后端接收的是(表单)字符串类型,post 的 headers 需设置 { ‘content-type’: ’application/x-www-form-urlencoded’ },

    ,传输给后端的数据就形如 ‘name=edward&age=25’

    项目开发中后端get请求需要接受(表单)字符串类型 但是post请求需要接手application/json,且后端返回类型不确定即可为字符串,也有可能json,axios的配置时的坑

    axios中data不设置时,headers 设置content-type不生效,后端返回类型不确定需要设置 'Accept':'/'

        let config;
        if(method==="GET"){
            config = {
              method: 'get',
              timeout: 120000, //上传较大图片需要响应较长时间
              url: getFastUrl() + url,
              data: {},
              withCredentials: false,
              headers: {
                'Accept':'*/*',
                'Content-Type': 'application/x-www-form-urlencoded'
              }
            }
        }else{
          config = {
            method: method,
            timeout: 120000, //上传较大图片需要响应较长时间
            url: url,
            data: method === "POST" || method === "PUT" ? params : null,
            withCredentials: false,
            headers: {
              // 'Content-Type': 'application/x-www-form-urlencoded'
              "Content-Type": "application/json"
            }
          }
        }
    

    相关文章

      网友评论

          本文标题:axios中Accept, content-type

          本文链接:https://www.haomeiwen.com/subject/iyfdvktx.html