Я работаю над приложением, созданным с углом 5 и сталкивающимся с проблемами с CORS, чтобы авторизовать пользователей, я использую метод токена jwt и отправляю его в заголовках, используя jwt.interceptor следующим образом
export class JwtInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// add authorization header with jwt token if available
let currentUser = JSON.parse(localStorage.getItem('currentUser'));
if (currentUser && currentUser.token) {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${currentUser.token}`,
Ip:currentUser.Ip
}
});
}
return next.handle(request);
}
}
этот код изменяет заголовок и добавляет токен / носитель, потому что эта модификация браузеры отправляет предварительные запросы OPTIONS перед фактическим API, я использую httpclient для отправки запросов API следующим образом
merchantDefaultSetup(ipAddress) {
if(this.access_token != '')
{
this.coreService.setMerchantDefaultSetup(this.access_token, ipAddress).subscribe(res => {this.apiResponse = res},
err => console.log(err),
() => this.checkSetMerchantDefaultSetupApiResponse(this.apiResponse)
);
}
else
{
this.router.navigate(["/dashboard"]);
}
}
, и эта функция использует следующую службу
public setMerchantDefaultSetup(token, ipAddress)
{
let header = new HttpHeaders({'Content-Type': 'application/json', 'Ip': ipAddress});
return this.http.get<Response>(this.apiUrl+'merchant/default-setup/'+token, {headers: header}).map(response => response.response);
}
код выше работает правильно, когда api и код приложения находятся на одном сервере, но я не создал два экземпляра ec2 на aws для раздельного размещения api и приложений.
Ниже приведена ошибка, которую я получаюon api hit
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://mydomain.mytestsite.com:8080/api/v1/merchant/default-setup/678as6d98a6s8d68. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing)
REST API построен с использованием golang и работает на порте 8080
Все статьи дают решение для методов get, post, put, но в моем случае они работают нормально, если толькоесть любой предполетный запрос ОПЦИИ
Пожалуйста, помогите