axios text html,axios中Accept, content-type

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

类型不同

类型不同Accept属于请求头, Content-Type属于实体头。

Http报头分为通用报头,请求报头,响应报头和实体报头。

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

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

作用不同

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

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

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

前端向后端传输数据时,如果是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"

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值