跨源请求被阻止:同源策略不允许读取 https://localhost:3000/ 处的远程资源

Cro*_*asr 6 node.js cors express angular

解决方案:事实证明我需要将https ://localhost:3000 更改为http ://localhost:3000。(我的后续问题是为什么会出现这种情况,特别是当我的代码适用于https ://www.remoteserver.com/` 时)。


我在(Node.js/Express)有一个开发服务器https://localhost:3000和一个生产服务器https://www.remoteserver.com。我的客户位于https://localhost:4200(Angular)。

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);
Run Code Online (Sandbox Code Playgroud)

但是在我的开发服务器上使用相同的代码,https://localhost:3000我仍然面临 CORS 阻塞问题,而且我还无法摆脱这个问题。

上面的代码是否适用于生产服务器但不适用于开发服务器?

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

非常感谢!

Sho*_*hel 7

三种解决方案,避免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();
});
Run Code Online (Sandbox Code Playgroud)

了解详情链接

  • 谢谢。事实证明,这在本例中不起作用。。。解决方法是将 **https** 更改为 **http**,但我非常感谢您的输入和帮助! (3认同)