netcoreapi配置跨域几种常见样板代码NoAccessControlAllowOriginheaderispre
简书链接:netcoreapi配置跨域几种常见样板代码NoAccessControlAllowOriginheaderispre
文章字数:306,阅读全文大约需要1分钟
as been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource. .net core api
在写低代码实现前端调用core api接口时出现了跨域问题,发现问题出在后端接口,或者说是被访问的接口,
在前端添加<meta http-equiv="Access-Control-Allow-Origin" content="*" />
是没效果的,因为问题是访问此页面出现错误,问题就从此页面此接口解决问题,上面的报错地址是core api写的,因此从它入手解决问题。
1 |
|
builder.Services.AddCors(c =>
{
//允许任意跨域请求
c.AddPolicy(“any”,policy =>
{
policy
.SetIsOriginAllowed((host) => true)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
app.UseCors(“any”);
1 |
|
app.UseCors(options => options
.AllowAnyHeader() // 确保策略允许任何标头
.AllowAnyMethod() // 确保策略允许任何方法
.SetIsOriginAllowed(o => true) // 设置指定的isOriginAllowed为基础策略
.AllowCredentials());
测试也简单,html提交表单,html网页是这个地址 提交表单是另外一个端口, 但是他们属于同一个服务器,通过注释代码可以发现不同的效果,值得注意的是,如果是iis启动的,此方法无效,应该是需要在web.config另外进行配置的