2016-06-20 47 views
1

我是想實現一個mailchimp api並用這樣的鍍鉻錯誤跨越跨域問題就來了:CORS問題進行API調用的反應/終極版應用

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

經過一番研究,事實證明,API調用使我從瀏覽器是由(我簡單地調用從我的行動的一個API),但要解決這個問題,他們需要在服務器上進行。

因此,我試圖找出一種方法來從我的操作內部的服務器調用api來繞過此問題。

編輯: 一個我找到了解決辦法是使用JSONP對於這一點,但我不得不放棄它爲好,因爲我不能用它進行身份驗證。

+1

有相當多的(https://npms.io/search?term=mailchimp)節點包與Mailchimp進行交互。 – robertklep

+0

您可以使用['node-http-proxy'](https://github.com/nodejitsu/node-http-proxy)來代理MailChimp API。 – Steven

+0

@Steven這看起來像一個整潔的解決方案,我嘗試瞭解他們的文檔,但仍不明白應該如何設置它,你能舉一個例子作爲答案嗎? – Ilja

回答

0

我找到解決的辦法是代理API調用通過下列方式表達:

在您的快遞配置:

import request from 'request' 

app.use('/api', function (req, res) { 
    let url = 'your_api_url' + req.url 
    req.pipe(request(url)).pipe(res) 
}) 

這是什麼讓你做的,而不是調用https://myapi.com/endpoint在您的組件將使用/api/endpoint這種方式快遞將用您的API網址替換您的服務器上的所有/api實例,並從服務器本身執行api調用。

+0

我有一個類似的問題,調用谷歌地方API。我如何從我的React動作調用這個。現在我有這樣的事情。 \t let url ='$ {GOOGLE_URL}/textsearch/json?query = $ {location}&pagetoken = {{nextPageToken}&radius = 500&key = $ {GOOGLE_KEY}'如何在我的電話中使用上述express API。 –

相關問題