2016-05-27 36 views
3

我想訂閱一封郵件到mailchimp上的一個列表,我先跟着文檔,使用「郵差」提出了一個請求,添加了所需的東西,一切正常,所以我試着做我的網站,並沒有奏效Mailchimp如何在javascript中調用mailchimp 3.0 API

我試圖做出與我的郵差設置相同的值一個簡單的請求,但每次我嘗試發送請求的響應說

XMLHttpRequest無法加載 https://us12.api.mailchimp.com/3.0/lists/xxxxxx/members。對預檢請求的響應 未通過訪問控制檢查:否 「所請求的 資源上存在」Access-Control-Allow-Origin「標頭。原因'https://mywebsite.com'因此不允許 訪問。響應有HTTP狀態代碼501

我試圖找到一種方法來克服這一點,但

我搜索計算器上說,每個人都使用JSONP或添加一些Ajax調用或使用已經不可能了一個mailchimp AJAX插件沒有奏效

我試圖diferent計算器帖子這樣一個 Mailchimp subscribe using jQuery AJAX? 但幾乎所有的人說同樣的

我試過cache: falsedataType:jsonpcrossDomain: truexhrFields: {withCredentials: true}

這是我的代碼,我使用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'); 
      } 
}); 

我也想過創造我自己的API,然後撥打電話到mailchimp API,但我可能會遇到同樣的問題

你有什麼建議嗎?

在此先感謝

+1

請對此錯誤進行搜索。這是CORS問題,每天都會多次提出這個問題。如果API不是CORS或jsonp啓用,你需要在你的服務器上使用代理 – charlietfl

+0

@charlietfl我已經遍地搜索,並不是所有人都建議使用代理,謝謝你的評論 – FFHanzel

回答

3

正如charliefl指出的,這是一個CORS問題。 MailChimp不支持CORS,主要是因爲它會要求您將API憑據傳遞給網頁用戶,允許他們接管您的整個帳戶。

MailChimp的兩個選項是通過服務器代理您的請求,或者爲了將人員簽名到您的列表,您可以使用更受限制的API build a custom signup form。第二種方法的警告是,它通過MailChimp的雙重選擇進程強制你的所有訂閱者。

+0

我看過那篇文章,你寫道,但JSONP無法在API 3.0上工作,所以我唯一的選擇是代理 感謝您的幫助! – FFHanzel