Я пытаюсь подключить очень простое приложение Angular 10 к Bigcommerce API и получаю следующую ошибку:
Доступ к выборке в 'https://api.bigcommerce.com/stores/0r5ke/v3/products' из источника 'https://angular-example123.stackblitz.io' имеет был заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок Access-Control-Allow-Origin. Если непрозрачный ответ соответствует вашим потребностям, установите для режима запроса значение 'no-cors', чтобы получить ресурс с отключенным CORS.
Я использую stackblitz.io, поскольку он обеспечивает соединение https, которое требуется Bigcommerce. Итак, у меня есть свой app.component.ts следующим образом:
import { Component, VERSION } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Product } from './product';
import { Observable } from 'rxjs';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
url ='https://api.bigcommerce.com/stores/0rfgr/v3/products';
products: Observable<any>;
constructor( private http: HttpClient ) {}
getProducts() {
let headers = new HttpHeaders();
headers = headers.set('X-Auth-Token', '123456789').set('X-Auth-Client', '123456789').set('Access-Control-Allow-Origin', '*');
this.products = this.http.get(this.url, { headers })
}
}
файл product.ts:
export interface Product {
name: string;
}
Если я изменю URL-адрес на «https://jsonplaceholder.typicode.com/users», он заработает и данные отображаются. Мы будем очень благодарны за любую помощь о том, почему он не работает с Bigcommerce.