在这里,我也在网络和移动设备上使用ionic,并且在集成时使用了https url时出现了cors问题。后来我在删除 http拦截器 cors问题后进行了检查,我可以在下面解决这个问题吗?
问题:使用拦截器时,我遇到了CORS问题,如果我删除了拦截器,它会正常工作。
export class HttpConfigInterceptor implements HttpInterceptor {
token:any;
constructor(public storage: Storage ) {
this.storage.get('Token').then(data => {
this.token = data;
});
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
//Authentication by setting header with token value
if (this.token) {
request = request.clone({
setHeaders: {
Authorization: this.token
}
});
}
if (!request.headers.has('Content-Type')) {
request = request.clone({
setHeaders: {
'content-type': 'application/json'
}
});
}
request = request.clone({
headers: request.headers.set('Accept', 'application/json')
});
return next.handle(request).pipe(
map((event: HttpEvent<any>) => {
if (event instanceof HttpResponse) {
}
return event;
}),
catchError((error: HttpErrorResponse) => {
console.error(error);
return throwError(error);
}));
}
}
我的要求出了问题,给了cors 200和text / html
答案 0 :(得分:2)
在我看来,这就像您的问题是,添加Authorization
标头会使GET
请求“不安全”,因此您的客户在{之前发送了OPTIONS
预检请求{1}},并且您的API网关未配置为处理GET
方法请求。您可能需要在网关中添加通用的OPTIONS
方法处理程序,并确保CORS允许使用OPTIONS
方法。
无论如何,这个问题几乎肯定在服务器端,因此需要您的服务器配置来提供有关如何解决此问题的详细说明。