从angular组件调用http get时出现以下错误:
"无法加载http://localhost:3005/json:否' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:3000'因此不允许访问。"。
答案 0 :(得分:0)
您需要设置标头以允许从(快速) Node.js 的路由器中的 localhost 进行访问。 下面的代码我使用*来节点服务器来访问所有来源的请求。
router.use(function(req,res,next){
res.header('Access-Control-Allow-Origin', req.get('Origin') || '*');
res.header('Access-Control-Allow-Credentials', 'true');
res.header('Access-Control-Allow-Methods', 'GET,HEAD,PUT,PATCH,POST,DELETE');
res.header('Access-Control-Expose-Headers', 'Content-Length');
res.header('Access-Control-Allow-Headers', 'Accept, Authorization, Content-Type, X-Requested-With, Range');
next();
});
答案 1 :(得分:0)
更容易解决的问题是使用快速中间件cors。
这将(有点)为您添加上述设置,以便您可以忘记这些。 非常重要的是,您只能在开发模式下启用此功能,因为这可能会导致严重的安全问题。 考虑做类似的事情:
const server = require('express')();
const cors = require('cors');
if (isDevelopmentMode) {
server.use(cors());
}