2017-09-01 71 views
1

所以我已經成功地在本地主機上的節點上設置了https服務器。 它的工作,但我有第三方api鏈接,我想打電話,並在前端顯示數據。當我嘗試在前端獲取它時,我得到的請求的資源上沒有「Access-Control-Allow-Origin」標題。 所以我認爲我需要爲此創建https代理。 非常感謝。使用節點和https本地主機獲取第三方鏈接的API

,這裏是我的node.js

var https = require('https'); 
var fs = require('fs'); 

var options = { 
    key: fs.readFileSync('key.pem'), 
    cert: fs.readFileSync('cert.pem') 
}; 

var a = https.createServer(options, function (req, res) { 
    res.writeHead(200); 
    res.end("Nemke"); 
}).listen(8000); 

和鏈接到API https://api.kursna-lista.info/b7b80a59415046c33449b6a2a96bd4d8/kursna_lista

現在我想實現的是:

fetch('https://localhost:8000/api.kursna-lista.info/b7b80a59415046c33449b6a2a96bd4d8/kursna_lista').then(res => res.json()).then(data => data).catch(err => err) 
+1

這並沒有太大的意義。你爲什麼試圖從'localhost'獲取數據?難道你只是使用'fetch('https://api.kursna-lista ...'? – Phil

+0

從本地主機訪問第三方URL沒有任何意義,因爲它不是你的本地主機,你只能訪問那些你想要做'fetch('https://api.kurs ...'? –

+0

這聽起來像你真的想調用一個外部API並從中返回數據。我可以建議使用[Express .js](https://expressjs.com/),並使用類似[axios](https://www.npmjs.com/package/axios)向其他服務發送請求。點擊'localhost:8000/some_external_call'這樣的特定端點來執行你想要的任何動作 – stetsmando

回答

0

您需要創建一個控制器在你的後端,它調用第三方API並將結果返回到前端。而你的前端將打電話給控制器,而不是打給第三方。

但是,如果您可以更改此第三方應用程序的源代碼,則可以啓用交叉來源,並且應該修復問題。

How to enable cross-origin resource sharing (CORS) in the express.js framework on node.js

+0

Op不使用Express。 – stetsmando

+0

@Alex謝謝你的回覆,但是我在哪裏放置api的鏈接,所以我可以在前端調用它,我想我需要調用它獲取('nodefileserver.js')? – NemanjaD

相關問題