2017-09-01 2 views
1

したがって、localhostのノードにhttpsサーバを設定しました。 それは動作していますが、私はサードパーティのAPIからのリンクを持っています。私はコールし、フロントエンドのデータを表示したいと思っています。フロントエンドでフェッチしようとすると、「Access-Control-Allow-Origin」ヘッダーが要求されたリソースに存在しません。 私はこれのためにhttpsプロキシを作成する必要があると思います。 ありがとうございます。ここノードとhttps localhostを使用してサードパーティ製のリンクに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)のようなものを使用して他のサービスにリクエストしてください。 – 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のリンクを置いてフロントエンドで呼び出すことができますか?fetch( 'nodefileserver.js')と呼ぶ必要があると思いますか? – NemanjaD

関連する問題