コード
app.js
const express = require('express');
const app = express();
const port = 4000;
// CORSを許可する
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.get('/', (req, res) => {
res.send('hello');
});
app.listen(port);
### 何をしているか
ご存知の通り、セキュリティの観点から、オリジン(htmlが置かれたサーバー)以外のサーバーからデータを取得すること(Cross-Origin-Resource-Sharing, CORS)を、現在のブラウザでは許可しておりません。
こちらを回避するためには、サーバーサイドにて、CORSを許可する必要があります。
そのため、app.use()内でレスポンスヘッダを書き換えた上で、クライアントにデータを送信しています。
なお、その名もcorsというnpm moduleを利用してCORSを許可する手もあるようです。