2016-09-20 8 views
0

私はこのスニペットを使用して、私のmailchimpリストにユーザーをサブスクライブしようとしています:MailChimpのAPI 3.0 XHRは501エラーを購読

function subscribeUser(name, email) { 
    var xhr = new XMLHttpRequest(); 
    var endpoint = 'https://<dc>.api.mailchimp.com/3.0/lists/<list>/members/'; 
    var data = {}; 
    data.email_address = email; 
    data.status = "subscribed"; 
    data.merge_fields = {}; 
    data.merge_fields.NAME = name; 
    xhr.open("POST", endpoint, true); 
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xhr.setRequestHeader("Authorization", "apikey <key>"); 
    xhr.onreadystatechange = function() { 
    if(xhr.readyState == 4 && xhr.status == 200) { 
     alert(xhr.responseText); 
    } 
    } 
    xhr.send(data); 
} 

それはクロームでこのエラーを生成します。

私はAJAXベースのサービスを記述することができませんリストを更新する。あなたたちはアクセスコントロールのヘッダーを追加していないからです。私は現代のブラウザを使って単純なxhrをエンドポイントに送ることはできません。

XMLHttpRequest cannot load https://<dc>.api.mailchimp.com/3.0/lists/<list>/members/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access. The response had HTTP status code 501. 

マインは静的なウェブサイトであり、私はそのようにしたいと思います。 githubでホストされているバックエンドは必要ありません。だから私はこれにJSソリューションが必要です。

答えて

0

現在、クライアント側のAPIへのアクセスは許可されていません。彼らresponse to a similar question in comments

私たちは ユーザーに沿って、あなたのAPIキーを渡すのセキュリティ上の問題を回避するために、クライアント側のJavaScriptを経由してAPIにアクセスしてサポートしていません。

関連する問題