我想在请求 header 中发送时区偏移。但我还没有找到任何方法来做到这一点。
我的代码如下:
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Injectable } from '@angular/core';
import { SessionProvider } from './session.provider';
@Injectable({ providedIn: 'root' })
export class TokenInterceptor implements HttpInterceptor {
constructor(private provider: SessionProvider) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const update = addHeaders(req, this.provider.session);
const request = req.clone(update);
return next.handle(request);
}
}
function addHeaders(req: HttpRequest<any>, session: any): any {
let headers = req.headers;
if (session?.stationId) {
headers = headers.set('wid', session.stationId);
}
if (session?.accessToken) {
headers = headers.set('Authorization', 'Bearer ' + session.accessToken);
}
return { headers };
}
我想在 addHeaders 函数中添加时区偏移。如果有人知道如何做到这一点,请分享您的想法
最佳答案
可以按如下方式完成:
function addHeaders(req: HttpRequest<any>, session: any): any {
let headers = req.headers;
if (session?.stationId) {
headers = headers.set('wid', session.stationId);
}
if (session?.accessToken) {
headers = headers.set('Authorization', 'Bearer ' + session.accessToken);
}
headers = headers.set('tz-offset', getTimeZoneOffset());
return { headers };
}
function getTimeZoneOffset(): string {
const tzOffset = new Date().toTimeString().match(/([\+-]\d{4})/)[0];
return [tzOffset.slice(0, 3), ':', tzOffset.slice(3)].join('');
}
关于javascript - 如何在 Angular 的请求 header 中发送时区偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74194858/