2016-05-27 10 views
3

にmailchimp 3.0 APIを呼び出すために、私は「ポストマン」を使用して、要求が必要だったものを追加行われ、すべてがうまく動作しますが、最初のドキュメントを続いたので、私私のウェブサイト上でそれを実行しようとしましたし、私は郵便配達に設定された値と同じ値を持つ単純な要求を作ってみましたはMailchimp私はmailchimp上のリストに電子メールを購読しようとしていますどのようにJavaScriptの

それは動作しませんでしたが、毎回私は、応答が

を言う要求を送信しようXMLHttpRequestは https://us12.api.mailchimp.com/3.0/lists/xxxxxx/membersをロードできません。応答 要求をプリフライトするとアクセス制御チェックを通過しません。いいえ 要求された リソースに 'Access-Control-Allow-Origin'ヘッダーが存在します。したがって、オリジン 'https://mywebsite.com'は許可されません。 応答は、HTTPステータスコード501

を持っていた私はこれを克服する方法を見つけることを試みたが、それは、私は誰もがJSONP使用するか、AJAX呼び出しまたは使用に何かを追加すると言うのstackoverflowで検索

不可能でした何もプラグインないmailchimpのアヤックスは、私はを試してみました、私はこの1つ Mailchimp subscribe using jQuery AJAX? などのdiferent StackOverflowのポストを試みたが、ほとんどすべてのは、同じ

を言う

を働いていますdataType:jsonpcrossDomain: truexhrFields: {withCredentials: true}

ここでは、私も自分自身のAPIを作成する上で思考して、APIをmailchimpする電話をかけるが、私は同じ問題に遭遇したかもしれない

私はjQueryの

$.ajax({ 
      type: "POST", 
      url: "https://usxx.api.mailchimp.com/3.0/lists/xxxxxxxx/members", 

      data: { "email_address":[email protected], "status":"subscribed"}, 
      headers: { 
      "Authorization": "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==", 
      "Content-Type": "application/json" 
      }, 
      success: function(data){ 
      alert('Thanks for subscribing'); 
      }, 
      error: function(data){ 
      alert('there was an error, try again later'); 
      } 
}); 

を使用しています、私のコードです

ご意見はありますか?事前

+1

このエラーを検索してください。それはCORSの問題であり、この問題は1日に何回も尋ねられます。 APIがCORSまたはjsonpが有効でない場合は、サーバ上でプロキシを使用する必要があります – charlietfl

+0

@charlietfl私はどこでも検索していましたが、それらのすべてがプロキシを使用するよう勧められていませんでした。あなたのコメントのおかげで – FFHanzel

答えて

3

charlieflが指摘したようで

おかげで、これはCORSの問題です。 MailChimpはCORSをサポートしていません。ほとんどの場合、APIクレデンシャルをウェブページのユーザーに渡す必要があるため、アカウント全体を引き継ぐ必要があります。

MailChimpの2つのオプションは、サーバー経由でリクエストをプロキシすることです。また、リストに登録するには、より制限付きのAPIを使用するbuild a custom signup formを使用できます。この2番目の方法の注意点は、MailChimpの二重オプトインプロセスを通じてすべての購読を強制することです。

+0

私は、しかし、jsonpはAPI 3.0で動作しないので、ここで私の唯一のオプションはプロキシです あなたの助けてくれてありがとう! – FFHanzel

関連する問題