解决方案:事实证明,我需要将 https :// localhost:3000更改为 http :// localhost:3000。 (我的后续问题是为什么会这样,尤其是当我的代码适用于 https :// www.remoteserver.com /`时)。
我在https://localhost:3000
有一个开发服务器,在https://www.remoteserver.com
有一个生产服务器(Node.js / Express)。我的客户在https://localhost:4200
(角度)。
我使用以下代码修复了https://www.remoteserver.com
的跨域请求被阻止的问题:
var cors = require(cors());
app.use(cors());
app.options('*',cors());
var allowCrossDomain = function(req,res,next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}
app.use(allowCrossDomain);
但是对于我的开发服务器https://localhost:3000
使用相同的代码,我仍然面临CORS被阻止的问题,并且我无法解决该问题。
上面的代码是否对生产服务器有效,对开发服务器无效?
关于修复的任何想法或下一步应该尝试什么?
非常感谢!
答案 0 :(得分:1)
三种解决方案,避免了CORS问题
尝试通过以下方式使用
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
了解详细信息link