1

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 クライアントから同じリクエストを起動すると、次のようになります。

http://restclient.net/

基本認証フィールドに URL とユーザー/API を指定すると、すべて正常に動作します。

理由がわかりません、誰か助けてくれませんか?

更新: メールチンプからの回答

やあ、フランチェスコ、

提供された記事のリンクを確認しましたが、同じ Origin ポリシー ブロックに遭遇しているようです。同じ起点ポリシーにより、ajax が非起点ドメインを呼び出すことを防ぎます。このため、サーバー側のメソッドを使用して API 呼び出しを開始する必要があります。

また、現時点では、MailChimp は API 3.0 の Jsonp をサポートしていません。

他にご不明な点がございましたら、お気軽にお問い合わせください。

終わり

4

1 に答える 1

1

Same Origin Policy に遭遇している可能性があると思います。AJAX から別のドメインを呼び出すことはできないと思います。おそらくゲートウェイファイルを介して、コールサーバー側を実装する必要があります。

https://en.wikipedia.org/wiki/Same-origin_policy

于 2016-04-22T11:55:42.083 に答える