需要对Content-type是application/json的内容进行加密,本来想通过config.headers['Content-Type']去获取默认的config的,但是始终获取不到,因为很多都是默认设置的,花了很长时间。后面通过其他方式去判断的。
1. 可以通过在请求配置里面带一些标识,比如XXX
2. 可以通过判断config.data的数据类型来判断是不是application/json这种Content-Type
if (config.XXX) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
}
// 先设置所有的请求的Accept都是加密,后端根据这个决定是否返回加密内容
config.headers['Accept'] = 'application/nt.v1+json'
// 如果有设置application/json或者请求体是对象并且不是FormData,那么设置加密Content-Type及对数据加密
if (
config.headers['Content-Type']?.includes('application/json') ||
(!config.needtoChange &&
config.data &&
typeof config.data === 'object' &&
!(config.data instanceof FormData))
) {
config.headers['Content-Type'] = 'application/nt.v1+json'
config.data = { data: utils.encrypt(JSON.stringify(config.data)) }
}
参考:
content-type: application/json_Allan简的博客-CSDN博客_content-type json