Получение Нет заголовка «Access-Control-Allow-Origin» присутствует ошибка для внешнего API - PullRequest
0 голосов
/ 13 января 2020

Я не понимаю, почему, но я продолжаю получать ошибку CORS, когда отправляю запрос на внешний API, независимо от того, что я делаю. Как это исправить?

import { Injectable } from '@angular/core';
import { HttpClient, HttpRequest, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class YtsService {
  url = 'https://yts.tl/api/v2/list_movies.jsonp';
  headers;

  constructor(
    private http: HttpClient,
  ) {
    this.headers = {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'GET',
      'Access-Control-Allow-Headers': 'Content-Type, Authorization',
    };
  }

  getMovies(): Observable<any> {
    return this.http.get(this.url, { headers: this.headers });
  }
}

API даже не требует аутентификации.

Это ошибка, которую я получаю в своей консоли:

Доступ в XMLHttpRequest по адресу 'https://yts.tl/api/v2/list_movies.jsonp' от источника 'http://localhost: 4200 ' заблокирован политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: Нет ' Заголовок Access-Control-Allow-Origin 'присутствует в запрошенном ресурсе.

Блокировка перекрестного чтения (CORB) заблокировала ответ перекрестного источника https://yts.tl/api/v2/list_movies.jsonp с текстом MIME-типа / html. Подробнее см. https://www.chromestatus.com/feature/5629709824032768.

Ответы [ 2 ]

1 голос
/ 13 января 2020

Кажется, вы пытаетесь вызвать конечную точку jsonp, попробуйте вместо этого использовать модуль HttpClientJsonpModule. Может не быть проблемой cors.

См. Ссылку для примеров:

Angular jsonp звонки

0 голосов
/ 13 января 2020

Ошибки CORS происходят от бэкэнда, а не от внешнего интерфейса. Запрашиваемый вами API-интерфейс не разрешает запросы от вашего источника - скорее всего, это не публичный c API. На внешнем интерфейсе вы ничего не можете сделать, чтобы предотвратить ошибки CORS, поскольку CORS - это система безопасности, реализованная бэкэндом для предотвращения нежелательных запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...