Angular2发布mailchimp

时间:2017-01-20 19:55:53

标签: http angular basic-authentication mailchimp mailchimp-api-v3.0

我的帖子适用于邮递员,但在我的应用内部无效。我做错了什么?

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)
        );

我在app中收到了CORS错误:

  

' XMLHttpRequest无法加载https://us123.api.mailchimp.com/3.0/lists/ {{somenumber}} /成员。对预检请求的响应没有通过访问控制检查:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:4200'因此不允许访问。响应的HTTP状态代码为501。'

1 个答案:

答案 0 :(得分: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/