Проблема CORS при использовании Mailgun через HttpClient

#angular #api #httpclient #sendmail #mailgun

#angular #API #httpclient #отправить почту #mailgun

Вопрос:

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

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

@Injectable({
  providedIn: 'root'
})
export class MailService {
  constructor(private http: HttpClient) { }

  sendEmail() {
    const header = new HttpHeaders({
      'Authorization': 'Basic '   'api:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
      'Access-Control-Allow-Headers': 'Content-Type, x-requested-with',
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS'
    });

    const formData = new FormData();
    formData.append('from', 'zname <zname@sandboxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.mailgun.org>');
    formData.append('to', 'example@hotmail.com');
    formData.append('subject', 'Hello');
    formData.append('text', 'This is cool !');

    this.http
    .post('https://api.mailgun.net/v3/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.mailgun.org/messages',
    formData, { headers:header, withCredentials: true }).subscribe(
          res => { console.log('res : ', res); },
          err => { console.error('err : ', err); },
          () => console.log('data :', formData),
      );
  }
}
  

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

1. Добавление заголовков CORS сюда, к сожалению, не окажет никакого положительного воздействия на проблему. Вместо этого они должны присутствовать в ответе от сервера.

2. Возможно, вы столкнетесь с этой проблемой только на localhost. Для localhost вам, вероятно, потребуется подделать свой ответ.