1

Мое сообщение работает в почтальоне, но не работает внутри моего приложения. Что я делаю не так?Angular2 post с mailchimp

let data = obj; 
     let url = 'https://us123.api.mailchimp.com/3.0/lists/{somenumber}/members'; 
     let username: string = 'user'; 
     let password: string = 'mytokenhere'; 
     let headers = new Headers(); 
     headers.append("Authorization", "Basic " + btoa(username + ":" + password)); 
     headers.append("Content-Type", "application/x-www-form-urlencoded"); 
     return this._http.post(url, data, {headers: headers}).subscribe(
      data => this.response(data), 
      error => this.response(error) 
     ); 

Я получаю ошибку CORS в приложении:

«XMLHttpRequest не может загрузить https://us123.api.mailchimp.com/3.0/lists/ {{somenumber}}/членов. Ответ на запрос перед полетом не проходит проверку контроля доступа. Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Origin 'http://localhost:4200', следовательно, не допускается. В ответе был код статуса 501. '

+0

Возможный дубликат [Как создать запрос междоменное (угловую 2)] (http://stackoverflow.com/questions/34790051/how-t о-создать-кросс-домен-запрос-угловой-2) – echonax

ответ

1

Mailchimp не поддерживает вызовы на стороне клиента в свой API. Вам нужно будет настроить сервер, который может проксировать запросы из браузера в Mailchimp. Существует не так много возможностей для клиентской стороны, чтобы заставить его работать, если API Mailchimp не предоставляет заголовки ответа CORS.

Если API, который вы создаете на том же домене, что и сайт, то вопрос CORS будет устранена (или вы также можете исправить, установив соответствующие заголовки)

См примечание под Authentication:

https://developer.mailchimp.com/documentation/mailchimp/guides/get-started-with-mailchimp-api-3/

Дополнительная информация: https://www.moesif.com/blog/technical/cors/Authoritative-Guide-to-CORS-Cross-Origin-Resource-Sharing-for-REST-APIs/

Смежные вопросы