Создайте предварительный просмотр ссылок в чате в режиме реального времени с помощью углового машинописного текста

#angular #typescript #metadata #api-linkpreview

Вопрос:

У меня проблема с созданием предварительного просмотра ссылок в чате для моего веб-сайта. Когда пользователь вводит URL-адрес в свой чат. Предварительный просмотр этой ссылки будет показан в окне чата, для этого мне нужно получить метаданные в элементе ресурса (по этому URL-адресу), например: <meta property="og:image" content="https://baomoi-static.zadn.vn/web/styles/img/facebook-thumb.png"> . В проекте углового машинописного текста я использую head() метод HttpClient, как показано ниже.

 getMetaData(url: string) {
    let headers = new HttpHeaders();
    headers = headers.append('Access-Control-Allow-Headers', '*');
    headers = headers.append('Access-Control-Allow-Methods', '*');
    headers = headers.append('Access-Control-Allow-Origin', '*');
    const options = {
      headers: headers,
      reportProgress: true,
      responseType: 'json',
    };
    return this.http.head(url, <HttpOptions>options);
  }
 

Но когда я использую этот метод httpclient, я получил такую ошибку. Кто-нибудь может помочь решить эту проблему или дать решение для получения метаданных в определенном URL. Я работаю с проектом angular typescript.

введите описание изображения здесь

Комментарии:

1. если вы получаете ошибку во внешнем интерфейсе для cors, вы мало что можете с этим поделать. Свяжитесь со своим внутренним tesm, они должны установить правильный набор заголовков cors, и вы не получите это сообщение

Ответ №1:

Измените код следующим образом и попробуйте.

 getMetaData(url: string) {
    let headers = new HttpHeaders();
    headers = headers.append('Access-Control-Allow-Headers', '*');
    headers = headers.append('Access-Control-Allow-Methods', '*');
    headers = headers.append('Access-Control-Allow-Origin', '*');
    headers = headers.append('Access-Control-Allow-Credentials', true);
    const options = {
      headers: headers,
      reportProgress: true,
      responseType: 'json',
    };
    return this.http.head(url, <HttpOptions>options);
  }