Мне нужно сделать HTTP-запрос к списку подписок шимпанзе почты через компонентный пост

Мне нужно сделать HTTP-запрос к списку подписок шимпанзе почты через компонентный пост

Я прочитал документацию почты шимпанзе и не смог ничего найти по этому поводу. Я также попробовал их встроенную форму почты шимпанзе в угловом представлении 2 html5, но это не работает по какой-то странной причине.

Так что вместо этого я сделал http-запрос к списку подписчиков, и у меня возникли проблемы с этим.

Я использую машинопись, angular2 и почтовый шимпанзе

Это мой код до сих пор:

  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: Неожиданный токен <

1 ответ

Решение

Я наконец узнал, как исправить вашу проблему. Вам нужно использовать поддержку Jsonp Angular2.

Ваш адрес поддерживает Jsonp, добавив c параметр запроса на ваш URL и переключение https://mysubscriptionlist.us10.list-manage.com/subscribe/post от https://mysubscriptionlist.us10.list-manage.com/subscribe/post-json, Вам нужно поставить 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."
}
)

После регистрации JSONP_PROVIDERS при вызове bootstrap функция:

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

Другие вопросы по тегам