1.在StartUp类的ConfigureServices方法中添加如下代码:
services
.AddCors(
option
=> option
.AddPolicy(
"any",
p
=> p
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
));
2.修改Configure方法
跨域声明应该放在路由的后面
public void Configure(IApplicationBuilder app
, IWebHostEnvironment env
)
{
if (env
.IsDevelopment())
{
app
.UseDeveloperExceptionPage();
}
app
.UseRouting();
app
.UseAuthorization();
app
.UseCors();
app
.UseEndpoints(endpoints
=>
{
endpoints
.MapControllers();
});
}
3.在需要跨域的Controller上添加特性
[Route("api/Products/GetProducts")]
[ApiController]
public class BussinessController : ControllerBase
{
[EnableCors("any")]
[HttpGet]
public IActionResult GetProducts()
{
List
<Product
> products
= new List<Product
>
{
new Product(){ id
=1,price
=5,productName
="袜子"},
new Product() { id
= 2, price
= 49999, productName
= "电脑" },
new Product() { id
= 3, price
= 120, productName
= "鞋子" },
};
return Ok(products
);
}
}
4.禁止跨域(在某个方法上禁止)
[HttpGet("{id}")]
[DisableCors]
public string Get(int id
)
{
return "value";
}
参考:
【1】https://www.cnblogs.com/lxhbky/p/11128217.html 【2】https://www.cnblogs.com/dotnet261010/p/10177166.html
转载请注明原文地址:https://blackberry.8miu.com/read-9899.html