我需要通过组件帖子向 mailchimp 订阅列表发出 http 请求
Posted
技术标签:
【中文标题】我需要通过组件帖子向 mailchimp 订阅列表发出 http 请求【英文标题】:I need to do a http request to a mail chimp subscription list via a component post 【发布时间】:2016-05-12 20:34:34 【问题描述】:我需要通过组件帖子向邮件黑猩猩订阅列表发出 http 请求
我已阅读邮件黑猩猩文档,但找不到任何相关内容。 我还在 Angular 2 html5 视图中尝试了他们的邮件黑猩猩嵌入形式,但由于某些奇怪的原因,这不起作用。
因此,我改为向订阅列表发出 http 请求,但无法正常工作。
我正在使用 typescript、angular2 和 mail chimp
这是我目前的代码:
subscribe = () =>
var url = "https://mysubscriptionlist.us10.list-manage.com/subscribe/post?u=b0c935d6f51c1f7aaf1edd8ff&id=9d740459d3&subscribe=Subscribe&EMAIL=" + this.email;
this.jsonp.request(url).subscribe(response =>
console.log(response);
);
这是我当前在 chrome 中的控制台日志错误:
Uncaught SyntaxError: Unexpected token
【问题讨论】:
您能通过“网络”标签查看回复吗?它可能返回一个错误而不是 json 如果您在新标签页中打开url
,原因就很明显了。
【参考方案1】:
我终于找到了解决您的问题的方法。需要使用Angular2的Jsonp支持。
您的地址通过将c
查询参数添加到您的URL 并将https://mysubscriptionlist.us10.list-manage.com/subscribe/post
切换为https://mysubscriptionlist.us10.list-manage.com/subscribe/post-json
来支持Jsonp。您需要将JSONP_CALLBACK
值放入其中(请参阅此问题:https://github.com/angular/angular/issues/5613)。
在这种情况下,您将拥有以下响应负载:
JSONP_CALLBACK (
"result": "success",
"msg": "Almost finished... We need to confirm your email address. To complete the subscription process, please click the link in the email we just sent you."
)
在调用bootstrap
函数时注册了JSONP_PROVIDERS后:
import bootstrap from 'angular2/platform/browser'
import JSONP_PROVIDERS from 'angular2/http'
import AppComponent from './app.component'
bootstrap(AppComponent, [ JSONP_PROVIDERS ]);
然后您可以使用从构造函数注入的Jsonp
类的实例来执行您的请求:
import Component from 'angular2/core';
import Jsonp from 'angular2/http';
@Component(
selector: 'my-app',
template: `
<div>
Result: result | json
</div>
`
)
export class AppComponent
constructor(jsonp:Jsonp)
var url = 'https://mysubscriptionlist.us10.list-manage.com/subscribe/post-json?u=(...)&subscribe=Subscribe&EMAIL=my@email.com&c=JSONP_CALLBACK';
jsonp.request(url, method: 'Get' )
.subscribe((res) =>
this.result = res.json()
);
查看此 plunkr 以获取工作示例:http://plnkr.co/edit/dqreqBL6kyNkR8Z2wgGR?p=preview
【讨论】:
我现在有一个 200 ok 的消息,这很好。但现在它没有添加到邮件黑猩猩订阅列表。那是因为我们开始使用jsonP 我没有收到任何错误,一切看起来都很好。但未添加用户 事实上,我在请求中设置的电子邮件地址收到了一封确认电子邮件。有一个用于确认订阅的链接;-) 我点击了电子邮件中的链接。你应该看到我出现了...... 现在一切正常 - 感谢您的帮助。邮件黑猩猩发送电子邮件很慢以上是关于我需要通过组件帖子向 mailchimp 订阅列表发出 http 请求的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 api 向 mailchimp 订阅者添加“标签”
发生一个或多个错误。(发送请求时发生错误)Mailchimp 列表集成