我正在使用Cloud9和Heroku開發基於MEAN堆棧的Web應用程序。我希望所有用戶都被強制使用HTTPS,我發現用快遞中間件的一個好方法:Node/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();
}
我希望這能工作對所有GET,POST,PUT,DELETE我收到請求,認爲任何呼叫到HTTP應該被重定向到相同的相應的HTTPS請求。
現在,雖然這本身似乎工作,我得到了CORS策略錯誤
的XMLHttpRequest無法加載 https://myappurlhere.herokuapp.com/app。否 「訪問控制 - 允許來源」標題出現在請求的 資源中。 Origin'http://myappurlhere.herokuapp.com'是 因此不允許訪問。響應有HTTP狀態代碼401
現在我明白這個概念,這是標準的CORS政策,防止跨域請求,但我不完全知道應該怎麼處理這個。我認爲這將作爲一個同域請求,但顯然不是。
我看到有人認爲第二臺服務器應該運行並捕獲HTTP流量,重定向,但我只使用一臺服務器。我不明白爲什麼這是行不通的。
任何幫助非常感謝。
問候