1

私の投稿は郵便配達では動作しますが、私のアプリでは動作しません。私は間違って何をしていますか?Angular2 post with 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}} /メンバーをロードすることはできません。プリフライト要求への応答がアクセス制御チェックを通過しない:要求されたリソースに「アクセス制御許可」がない。 Origin 'http://localhost:4200'はアクセスできません。応答はHTTPステータスコード501でした。

+0

可能な重複[?(角2)クロスドメインリクエストを作成する方法](http://stackoverflow.com/questions/34790051/how-t o-create-cross-domain-request-angular-2) – echonax

答えて

1

Mailchimpは、クライアント側のAPI呼び出しをサポートしていません。あなたがする必要があるのは、ブラウザーからMailchimpへの要求をプロキシできるサーバーをセットアップすることです。 Mailchimp APIがCORS応答ヘッダーを提供していない場合、それを動作させるためにクライアント側を行うことはあまりありません。

作成し、あなたのAPIは、ウェブサイトと同じドメイン上にある場合は、CORSの問題は解消されるだろう(あるいはあなたも適切なヘッダを設定することで修正することができます)

認証の下のメモを参照してください。

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/