A major update has appeared in the Mailchimp API (v3.0), and many of the jQuery plugins are deprecated to allow POST subscribers to form.submit() .
After reading v3.0 docs:
Subscriber management offers the following JSON object format:
{ "email_address": " urist.mcvankab@freddiesjokes.com ", "status": "subscribed", "merge_fields": { "FNAME": "Urist", "LNAME": "McVankab" } }
And the following root endpoint for the API lists the resource:
https://<dc>.api.mailchimp.com/3.0/
So here is my form.submit() code with a jQuery Ajax POST :
$(document).ready(function(){ var mcForm = $('#mailchimpForm'); var mailchimp = {}; mailchimp.dc='us5'; mailchimp.id='xxxxxxxx'; var url = '//' + mailchimp.dc + '.api.mailchimp.com/3.0/lists/' + mailchimp.id + '/members/'; function beginMailchimpPost(data){ var params = JSON.stringify(data); $.ajax({ url: url, method: 'POST', data: params, dataType: 'jsonp', contentType: 'application/json; charset=utf-8', error: function(res, text){ console.log('Err', res); }, success: function(res){ console.log('Success', res); } }); } });
This is the JSON.stringify(data) object:
{"email_address":" email@mail.com ","status":"subscribed","merge_fields":{"FNAME":"Name","LNAME":"Last name"}}
And I get the following error:
GET http://... 401 (Unauthorized) Err Object {readyState: 4, status: 404, statusText: "error"}
What could be wrong?
Here's a link to the Mailchimp API v3.0 docs (collection of list members).