提交 2a146bf2 authored 作者: vipcxj's avatar vipcxj

改变post方法的接口中包体中数据token属性的顺序,提到最前面,保证服务端能够在预处理时能取到这个属性

上级 bb3ac7e7
......@@ -10,6 +10,22 @@ const defaultOptions = {
},
};
const sortBodyForToken = (body) => {
const keys = Object.keys(body);
const idxToken = keys.indexOf('token');
if (idxToken !== -1) {
if (idxToken === 0) {
return keys;
} else if (idxToken === keys.length - 1) {
return ['token', ...keys.slice(0, keys.length - 1)];
} else {
return ['token', ...keys.slice(0, idxToken), ...keys.slice(idxToken + 1)];
}
} else {
return keys;
}
};
export default async function post(url, data, params = {}, options = {}, auth = true) {
if (!data) {
data = {};
......@@ -31,7 +47,8 @@ export default async function post(url, data, params = {}, options = {}, auth =
}
realOptions.headers['Content-Type'] = 'application/json';
realOptions.method = 'POST';
realOptions.body = JSON.stringify(res ? res.data : data);
const body = res ? res.data : data;
realOptions.body = JSON.stringify(body, sortBodyForToken(body));
return fetch(realUrl, realOptions)
.then(checkStatus)
.then(resp => parseObject(resp, middleware.post.onResponse));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论