HTML ページを Mailchimp (無料) アカウントに接続しようとしています。私はドキュメントを読みましたが、非常に単純なはずです。
これは私の JS コードです (ページの読み込み時に読み込まれた jQuery 1.2.2):
username = [your-username];
apiKey = [your-mailchimp-api-key];
baseUrlMailchimp = "https://us5.api.mailchimp.com/3.0/";
apiMC = function(type, data, url, callback) {
$.ajax({
type: type,
dataType: 'jsonp',
data: data,
contentType: 'application/json',
url: url,
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Basic ' + btoa(username + ":" + apiKey));
},
success: function(e) {
if (callback) {
callback(e)
}
},
error: function(e) {
console.log(e);
}
});
}
apiMC('GET', '', baseUrlMailchimp + 'lists', function(res){console.log(res)})
問題は、エラー 401 (あなたのリクエストには API キーが含まれていません) が表示されることです。
Chrome REST クライアントから同じリクエストを起動すると、次のようになります。
基本認証フィールドに URL とユーザー/API を指定すると、すべて正常に動作します。
理由がわかりません、誰か助けてくれませんか?
更新: メールチンプからの回答
やあ、フランチェスコ、
提供された記事のリンクを確認しましたが、同じ Origin ポリシー ブロックに遭遇しているようです。同じ起点ポリシーにより、ajax が非起点ドメインを呼び出すことを防ぎます。このため、サーバー側のメソッドを使用して API 呼び出しを開始する必要があります。
また、現時点では、MailChimp は API 3.0 の Jsonp をサポートしていません。
他にご不明な点がございましたら、お気軽にお問い合わせください。
終わり