【发布时间】:2019-10-27 23:55:31
【问题描述】:
我有一个 angulat http 拦截器,它试图将授权标头添加到请求中,但是当代码运行时,生成的请求不是我所期望的,方法从 POST 更改为 OPTIONS,我收到如下错误:
从源“http://localhost:4200”访问“http://localhost/authorization/oauth/token”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。
@Injectable()
export class DlkmInterceptor implements HttpInterceptor {
constructor() {
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (request.url === authConfig.tokenEndpoint && request.method === 'POST') {
let authData = window.btoa(authConfig.clientId + ':' + authConfig.dummyClientSecret);
request = request.clone({
setHeaders: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic ' + authData
}
});
return next.handle(request);
} else {
request = request.clone({});
return next.handle(request)
}
}
}
【问题讨论】:
标签: angular typescript http