私はCloud9とHerokuを使用して、MEANスタックベースのWebアプリケーションを開発しています。私は、すべてのユーザーがHTTPSを使用するように強制することにしたい、と私はExpressのミドルウェアを使用して良い方法を見つけました:ノード/ express - CORSによってブロックされずにHTTPSを強制する方法
app.use(function(req,res,next) {
if(req.headers["x-forwarded-proto"] == "http") {
console.log("HTTP call detected, not allowed);
return res.redirect('https://' + req.hostname + req.path);
} else {
console.log("HTTPs call detected, allowed");
return next();
}
私は、これはすべて、POSTをGET PUTのために働くことを願って、私は受信DELETE要求を、そのいずれかの呼び出しを考えてto HTTPは、同じ、対応するHTTPS要求にリダイレクトする必要があります。今
これは、それ自体で動作しているようですが、私はXMLHttpRequestのは https://myappurlhere.herokuapp.com/appをロードすることはできませんCORSポリシーエラーに
を取得しています。いいえ 要求された リソースに 'Access-Control-Allow-Origin'ヘッダーが存在します。 Origin 'http://myappurlhere.herokuapp.com'は なので、アクセスは許可されません。応答にはHTTPステータスコード401がありました。
これは、ドメイン間の要求を防止する標準のCORSポリシーであるという概念を理解していますが、私はこれにどのようにアプローチするべきか正確には分かりません。私はこれが同じドメイン要求として行くと思ったが、明らかにそうではなかった。
私は、2番目のサーバーがHTTPトラフィックを実行してリダイレクトする必要があると主張する人もいますが、1台のサーバーしか使用していないと主張しています。なぜそれがうまくいかないのか分かりません。
大変助かりました。
よろしく