9

Mailchimp API (v3.0) に大きな更新があり、多くの jQuery プラグインは のPOSTサブスクライバー向けに古くなっていform.submit()ます。

v3.0 ドキュメントを読んだ後:

サブスクライバーの管理では、次の JSON オブジェクト形式が提案されています。

{
   "email_address": "urist.mcvankab@freddiesjokes.com", 
   "status": "subscribed", 
   "merge_fields": {
      "FNAME": "Urist", 
      "LNAME": "McVankab"
   }
}

そして、API リスト リソースの次のルート エンドポイント:

https://<dc>.api.mailchimp.com/3.0/

form.submit()jQuery AjaxPOSTリクエストを使用したコードは次のとおりです。

$(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);
            }
        });
    }
});

これはJSON.stringify(data)オブジェクトです:

{"email_address":"email@mail.com","status":"subscribed","merge_fields":{"FNAME":"Name","LNAME":"Last name"}}

そして、次のエラーが発生します。

GET http://... 401 (Unauthorized)
Err Object {readyState: 4, status: 404, statusText: "error"}

何が間違っている可能性がありますか?

Mailchimp の API v3.0 ドキュメント(リスト メンバー コレクション)へのリンクは次のとおりです。

4

4 に答える 4

3

残念ながら、フロントエンドの Mailchimp API をリクエストすることはできません。

注意 MailChimp は、CORS リクエストを使用した API のクライアント側実装をサポートしていません。これは、アカウント API キーを公開することによる潜在的なセキュリティ リスクのためです。

https://developer.mailchimp.com/documentation/mailchimp/guides/get-started-with-mailchimp-api-3/#authentication

于 2016-11-08T19:04:42.073 に答える
-1

API キーを渡していないため、401 が返されます。

ajax 呼び出しに以下を追加する必要があります。

beforeSend: function(xhr) { xhr.setRequestHeader("Authorization",
    "Basic " + btoa("api:" + mailchimp_api_key)); };

mailchimp_api_key はアカウントのキーです。API による認証の詳細については、http://kb.mailchimp.com/api/article/api-3-overviewをご覧ください。

于 2015-09-25T15:39:56.470 に答える
-2

次のように、API キーを params に追加する必要があります。

{
   "apikey": "your key here",
   "email_address": "urist.mcvankab@freddiesjokes.com", 
   "status": "subscribed", 
   "merge_fields": {
      "FNAME": "Urist", 
      "LNAME": "McVankab"
   }
}

次に、datetype を「jsonp」から「json」に変更する必要があります。"jsonp" は GET のみで、POST メソッドでは動作しません。

最後に、クロス ドメイン スクリプティングを許可する必要があります。

http://enable-cors.org/server.html

于 2016-01-05T12:42:58.910 に答える