CORS を使用した LocomotiveJs による REST API。ローカル マシンでは動作しますが、Amazon や Heroku では動作しません
私は LocomotiveJs を使用して REST API を作成しましたが、今は CORS を有効にしようとしています。「すべての」環境 (config/environments/all.js) に次のコードを追加しました。
this.use(function crossOrigin(req,res,next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With,Authentication");
res.header("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS");
return next();
});
ローカル マシンでは動作しますが、Heroku または AWS にデプロイすると、クライアントが OPTIONS コマンドを送信すると 404 Http エラーが発生します。
問題を特定するために、次のコードを使用して単純な Express アプリを開発しました。
var express = require('express');
var app = express();
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With,Authentication");
next();
});
app.get('/test', function(req, res){
res.set('Content-Type', 'application/json');
res.send({ 'Hello' : 'World' });
});
var port = process.env.PORT || 5000;
app.listen(port);
console.log('Listening on port ' + port);
このコードは、Heroku にデプロイすると機能しました。
ローカル マシンでは機能し、サーバーでは機能しなかった理由について何か意見はありますか?