跨域请求被阻止:同源策略禁止读取位于https:// localhost:3000 /

时间:2019-04-29 04:46:17

标签: node.js angular express cors

解决方案:事实证明,我需要将 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被阻止的问题,并且我无法解决该问题。

上面的代码是否对生产服务器有效,对开发服务器无效?

关于修复的任何想法或下一步应该尝试什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

三种解决方案,避免了CORS问题

  1. 允许CORS进入服务器端
  2. 使用代理服务器
  3. 使用JSONP

尝试通过以下方式使用

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