我正在运行一个服务器,该服务器的Express端口为3000,一个客户端的角度为7,端口为4200。提出请求后,便遇到了CORS问题。
CORS策略已阻止从来源“ http://localhost:3000/drug”访问“ http://localhost:4200”处的XMLHttpRequest:请求的资源上没有“ Access-Control-Allow-Origin”标头。
我已经在线尝试了所有解决方案,例如使用cors软件包,并在路由器之前设置了中间件,如以下代码(Angular 6 - No 'Access-Control-Allow-Origin' header is present on the requested resource)。但是它仍然没有解决,并不断出现同样的错误。有人会遇到无法用所有解决方案解决CORS的问题吗?请你帮助我好吗?
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header(
"Access-Control-Allow-Header",
"Origin, X-Requested-With, Content-Type, Accept"
);
next();
});
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "http://localhost:4200");
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header(
"Access-Control-Allow-Header",
"Origin, X-Requested-With, Content-Type, Accept"
);
next();
});
答案 0 :(得分:3)
将这行代码app.use(cors());
放在路由代码之前。 (假设您已经安装了cors
软件包)。
答案 1 :(得分:0)
我认为答案会太迟了,但对于将来的某人:
您必须在服务器端将其打开。
我是.Net开发人员,因此我将在.Net核心应用程序示例中进行演示。
在启动文件方法ConfigureServices
中,您应该添加下一个代码
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.WithOrigins("http://localhost:4200")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
此后,您应该编辑方法Configure
。在呼叫UseMvc
app.UseCors("CorsPolicy");
仅此而已。我希望这个答案对某人有帮助。