要做一个验证的功能,需要每次请求都带上token,而后台要求要放在Header中,请问,该怎么放进去?
/**
* 对参数进行编码
*
* @param criteria 需要编码的参数
*/
encode(criteria) {
const params: URLSearchParams = new URLSearchParams();
for (const key of Object.keys(criteria)) {
const tmp = criteria[key];
if (tmp instanceof Array) {
for (const v of tmp) {
params.append(key, v);
}
} else if (tmp instanceof Date) {
params.set(key, this.formateDate(tmp));
} else {
params.set(key, criteria[key]);
}
}
return params;
}
/**
* 使用POST方法对指定URL发送指定的参数
*
* @param url
* @param criteria 发送的参数对象
*/
postWithCriteria(url, criteria) {
// console.log('请求:', url, criteria);
return this.http.post(url, this.encode(criteria || {})).map(r => {
const tmp = r.json();
// console.log('响应:', tmp);
if (typeof tmp.data === 'string') {
tmp.data = JSON.parse(tmp.data);
}
return tmp;
});
}
/**
* @param url 网址
* @param criteria 请求参数
* @param cls 响应类
* */
post(url, criteria = null, cls = null) {
return this.postWithCriteria(url, criteria || {}).map((data: ResponseMessageModel) => {
if (data.resultType && cls) {
if (Array.isArray(data.data)) {
data.data = data.data.map(item => {
return new cls(item);
});
} else if (Array.isArray(data.data.Rows)) {
data.data.Rows = data.data.Rows.map(item => {
return new cls(item);
});
} else if (typeof(data.data) === 'object') {
data.data = new cls(data.data);
}
}
this.timeManagerService.setTimestamp(data.timeStamp);
return data;
});
}
https://blog.csdn.net/why1573...
参照这个方法,我自己写了一个,如下图所示: