IdentityServer4 token请求需要application/x-www-form-urlencoded ,Body的格式需要键值对,以Json格式传输会报错。
以下是处理方式:
首先在请求头部声明Content-Type 字段为’application/x-www-form-urlencoded’
export function login (parameter) {
return request({
url: userApi.Login,
method: 'post',
data: parameter,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
}
第二步安装 querystring
npm i querystring
最后在vue文件中使用
import qs from 'querystring' //引入
const loginParams = { ...values }
loginParams.username = values.username
loginParams.password = values.password
loginParams.client_id = 'client_id'
loginParams.grant_type = 'password'
const loginParamsStr = qs.stringify(loginParams)//对象转键值对
Login(loginParamsStr)