yarn add qs
yarn add jsencrypt
1.封装一个方法
import JSEncrypt from 'jsencrypt'
//公钥
let publicString = 'H0EupoXF'
export const encrypt = (word) => {
let jse = new JSEncrypt()
jse.setPublicKey(publicString) //只用公钥就行
let encrypted = jse.encrypt(word).replace(/\+/g,"%2B")//+会变成空格,需要提提前替换一下
return encrypted
}
2.使用
import qs from 'qs'
//登录
export const login = (data)=>{
return service({
url:`/api/login`,
method:"POST",
data:qs.stringify({
name:encrypt(data.name),
password:encrypt(data.password)
}),
xWwwFormData:true
})
}
3.请求配置头部,用formData传参时的配置
if (config.xWwwFormData ) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
}
if (config.formData) {
config.headers['Content-Type'] = 'multipart/form-data'
}else if (config.xWwwForm ) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
} else if (config.xWwwFormData ) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
} else {
config.headers['Content-Type'] = 'application/json;chartset=UTF-8'
}
if(config.url.indexOf('tree') >0){
config.headers["userToken"] = localStorage.getItem("tokenOrg")
}else{
config.headers["sessionId"] = localStorage.getItem("token")
}