2011-03-04 17 views
9

MailChimp Newsletterリスト(API v3)にデータを送信するために使用している次のコードがあります。関数からtype: POSTを削除するたびに、GET経由でデータをポストしようとし、データを適切に送信します(MailChimp APIダッシュボードでok応答)。これをブラウザ(FF)でテストすると、 "true"の応答を持つ.partファイルが得られます。jQuery Ajax POSTがMailChimpで動作しない

$(function(){ 
    $("a#test").click(function(e){ 
     e.preventDefault() 
     data = { 
     "apikey" : "667378947", 
     "id" : "90298590285", 
     "email_address" : "[email protected]", 
     "output" : "json" 
     } 

    $.ajax({ 
    type: "POST", 
    url: 'http://us2.api.mailchimp.com/1.3/?method=listSubscribe', 
    data: data, 
    success: function(data){ 
     alert(data); 
    }, 
    error: function(){ 
     alert("err"); 
    } 
    })  
}); 
}); 

私はこの1つに私の髪を引っ張って、どんな洞察力も大いに感謝します。事前に

おかげで、

JN

+1

で便利だ場合、私は、このメソッドを使用するjQueryプラグインを書いたが、ここが同一生成元ポリシーの問題ではありませんか? – Yahel

+2

あなたの質問にはこのメソッドを使用しないでください.Webページのソースを表示する方法を知っている人にMailChimp APIキーを公開しています。サーバー側のコードでのみ使用してください。この暴露によって、誰も理論的にメンバーをあなたのリストに登録したり削除したりすることができます。 – adamdehaven

答えて

8

主な問題は、元の投稿にコメントされたJCです。これは、同じOriginポリシーの問題のためにはうまくいきません。 FirebugはなぜGET呼び出しが失敗するのかについての声明ではありませんが、それはデータを返さない理由です。 POSTでそれを見ると、Firefoxは電話をしていないこともわかります。一方、Chromeのjsコンソールは、同じOriginポリシーをあなたに直接説明しています。

これは、他の理由がない限り、あなたのアカウントのAPIキーを一般公開することができない場合は非常に良いことです。これは非常に悪いことです。理由がすぐにわからない場合は、APIで利用可能な多数のメソッドを読んで、APIキーにアクセスする必要があることをすべて理解してください。

これを行う正しい方法は、サーバーにデータをPOSTしてそこから要求を送信することです。完全に構築されたPHPの例がいくつかあります(1つはjquery、evenを使用しています)。here

+0

詳細な説明をいただきありがとうございます。これが私が何か問題を抱えていた理由過去に似ています。もう一度ありがとう! – jeffreynolte

-2
e.preventDefault(); 
data = { 
    "apikey" : "667378947", 
    "id" : "90298590285", 
    "email_address" : "[email protected]", 
    "output" : "json" 
}; 

はだろうか?セミコロンは重要です。 Hehe

+0

洞察力に感謝しますが、残念なことにbuenoはありません。 : – jeffreynolte

+0

POSTパラメータの代わりにGETパラメータを使用する必要があるかもしれません。 – Joseadrian

+0

MC APIに記載されているように、POSTにする必要があります。http://apidocs.mailchimp.com/rtfm/ – jeffreynolte

12

JSONPを使用してドメイン間のajax要求を行う文書化されていないエンドポイントがあります。

「投稿」を変更するだけです。ポスト・ジョンソン? '& c =?'を追加します。 JSONPエンドポイントを取得するための標準URLの最後に追加します。これは、クライアント側で公開されるAPIキー、またはサーバー側のビューの作成を必要としません。

それがすべて

https://github.com/scdoshi/jquery-ajaxchimp

関連する問題