Ionic2 Mailchimp API. Angular2 ничего не публиковать

Дело в том, что в настоящее время я работаю над мобильным приложением с ionic2, и мне нужно использовать Mailchimp для подписок. Я пишу php-файл, который обрабатывает API, и загружаю его на сервер. API отлично работает со статическим электронным письмом, которое я пишу в нем, так что оно действительно работает. После того, как я сделал это, я начинаю работать над данными поста в angular2 / ionic2. Но я получаю

SyntaxError: неожиданный токен A в JSON в позиции 0

ошибка.

Все дело не в этом коде:

createPost(post: {email: string}): Observable<any>{
const email = JSON.stringify(post);
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:8100/api', email, {
headers: headers
}).map(res => {console.log(res.json())});
}

Я понимаю, что проблема заключается в URL, но я не могу понять, почему. Когда я использую http://jsonplaceholder.typicode.com/posts в URL это работает.

Мой PHP-код выглядит следующим образом (я использую оболочку MailChimnp.php):

<?php // for MailChimp API v3.0
include('MailChimp.php');  // path to API wrapper downloaded from GitHub
use \DrewM\MailChimp\MailChimp;

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;

$MailChimp = new MailChimp('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-usXX');

$list_id = 'xxxxxxxxxx';
$result = $MailChimp->post("lists/$list_id/members", [
'email_address' => $email,
'status'        => 'subscribed',
]);

print_r($result);

if ($MailChimp->success()) {
print_r($result);
} else {
echo $MailChimp->getLastError();
}

0

Решение

Ваша функция карты должна возвращать данные. Вы должны это исправить:

createPost(post: {email: string}): Observable<any>{
const email = JSON.stringify(post);
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:8100/api', email, {
headers: headers
}).map(res => {
console.log(res.json())
return res.json(); //add this line
});
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]