9

MailChimpニュースレターリスト(API v3)にデータを送信するために使用している次のコードがあります。関数からを削除するたびに、type: POSTGETを介してデータを投稿しようとし、データを適切に送信します(MailChimp APIダッシュボードでの応答はOKです)。ブラウザ(FF)でこれをテストすると、「true」応答の.partファイルが返されます。

   $(function(){
     $("a#test").click(function(e){
       e.preventDefault()  
       data = {
         "apikey" : "667378947", 
         "id" : "90298590285", 
         "email_address" : "test@getmoxied.net", 
         "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");
    }
  })       
 });
});   

私はこれに私の髪を引っ張っています、どんな洞察も大いに感謝されます。

前もって感謝します、

JN

4

3 に答える 3

14

JSONP を使用してクロスドメインの ajax リクエストを行う、文書化されていないエンドポイントがあります。

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

このメソッドを使用する jQuery プラグインを作成しました。

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

于 2013-05-04T02:08:17.627 に答える
9

主な問題は、jcが元の投稿にコメントした内容です。これは、同一生成元ポリシーの問題のために機能しません。Firebugは、GET呼び出しが失敗する理由についてはあまり声を上げていませんが、それがデータを返さない理由です。POSTでそれを見ると、Firefoxが電話をかけないことがわかります。一方、Chromeのjsコンソールは、同一生成元ポリシーを説明しています。

全体として、これは、アカウントのAPIキーを公開することを妨げる以外の理由がない限り、非常に良いことです。これは非常に悪いことです。すぐに理解できない理由がある場合は、APIで利用可能な多数のメソッドを読み、それらにアクセスするために必要なのはそのAPIキーだけであることを理解してください。

これを行う正しい方法は、データをサーバーにPOSTして戻し、そこからリクエストを行うことです。完全に構築されたPHPの例がいくつかあります(1つはjqueryを使用しています) 。

于 2011-03-04T16:34:04.737 に答える
-2
e.preventDefault();
data = {
  "apikey" : "667378947", 
  "id" : "90298590285", 
  "email_address" : "test@getmoxied.net", 
  "output" : "json"
};

になり得る?セミコロンは重要です。へへへ

于 2011-03-04T00:46:52.890 に答える