我正在运行一个服务器,快递在端口3000和一个客户端与角7在端口4200.一旦我提出请求,我遇到CORS问题。
从'http://localhost:3000/drug'访问'http://localhost:4200'的XMLHttpRequest已被CORS策略阻止:请求的资源上没有'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();
});
在路由代码之前放置这行代码app.use(cors());
。 (假设你已经安装了cors
包)。
我觉得答案会这么晚,但对于未来的某些人来说:
你必须在服务器端打开它。我是.Net开发人员,因此我将以.Net核心应用程序为例。在启动文件方法ConfigureServices
中,您应该添加下一个代码
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.WithOrigins("http://localhost:4200")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
之后你应该编辑方法Configure
。在调用UseMvc
之前添加下一行
app.UseCors("CorsPolicy");
就这样。我希望这个答案对某人有帮助。