一个GET请求在Safari中不起作用(授权问题)-Angular 6

时间:2018-12-04 10:42:47

标签: javascript angular

我在多个地方发现了此问题,但没有明确的解决方案。仅有一个get请求无法正常工作(401未经授权),但是当我查看调试器时,代码可以正常工作,而所有其他请求都可以正常工作。 Chrome和Firefox也可以正常工作,没有问题。

这是我的拦截服务:

@Injectable()
export class TokenInterceptor implements HttpInterceptor {
    constructor(public auth: LoginService) {}
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

        // Get the auth header from the service.
        let authHeader = this.auth.getToken();
        if (!authHeader) {
            authHeader = '';
        }
        let authReq: any;
        // Clone the request to add the new header.
        if (this.auth.isAuthenticated()) {
            authHeader = authHeader.replace(/^"(.*)"$/, '$1'); // Remove quotes from token start/end.
            authReq = request.clone({headers: request.headers.set('Authorization', 'Bearer ' + authHeader)});
        } else {
            authReq = request.clone({headers: request.headers.set('Token', authHeader)});
        }

        // Pass on the cloned request instead of the original request.
        return next.handle(authReq);
    }
}

有人建议吗?

1 个答案:

答案 0 :(得分:0)

您只需要添加/和api端点的末尾。例如,这将不起作用:

http://www.example.com/api/skill

但这将起作用:

http://www.example.com/api/skill/