Asp.net Core 跨域配置
2020-04-21 12:26
453 查看
一般情况WebApi都是跨域请求,没有设置跨域一般会报以下错误
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:48057' is therefore not allowed access.
ASP.net Core 跨域有两种,全局和区域
全局跨域:
打开Startup.cs文件.在ConfigureServices方法中添加以下代码
1.配置跨域处理,允许所有来源:
//配置跨域处理,允许所有来源: services.AddCors(options => options.AddPolicy("自定义的跨域策略名称", p => p.AllowAnyOrigin()) );
2.允许一个或多个具体来源:
//允许一个或多个具体来源: services.AddCors(options => { // Policy 名稱 CorsPolicy 是自訂的,可以自己改 options.AddPolicy("跨域规则的名称", policy => { // 設定允許跨域的來源,有多個的話可以用 `,` 隔開 policy.WithOrigins("http://localhost:3000","http://127.0.0.1") .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials(); }); });
以上两种按需求选择一种即可.
Configure方法中添加以下代码
app.UseCors("自定义的跨域策略名称");//必须位于UserMvc之前
app.UseMvc();
局部跨域第一种用法:
1.ConfigureServices方法不变,删去Configure中的app.UseCors()方法
2.在Controller顶部或者Action方法顶部加上[EnableCors("自定义的跨域策略名称")]特性,例如
[EnableCors("自定义的跨域策略名称")]
[Route(
"api/[controller]")]
public class ContactController : Controller
以上就可实现指定某个controller或者action跨域
禁止跨域:
禁止跨域在Controller或者Action加上[DisableCors]特性即可禁止跨域
[HttpGet("{id}")] [DisableCors] public string Get(int id) { return "value"; }
参考:
https://blog.johnwu.cc/article/asp-net-core-cors.html?from=singlemessage&isappinstalled=0
https://docs.microsoft.com/en-us/aspnet/core/security/cors
http://www.cnblogs.com/tianma3798/p/6920704.html
相关文章推荐
- ASP.NET Core WebApi 跨域配置 Cors
- Asp.net Core 跨域配置
- asp.net core webapi 服务端配置跨域的实例
- ASP.NET Core 配置跨域(CORS)
- C# ASP.NET MVC 配置允许跨域访问
- 【ASP.NET Core快速入门】(六)配置的热更新、配置的框架设计
- ASP.NET Core 1.0 基础之配置
- asp.net core-11.WebHost的配置
- asp.net core api跨域问题
- Asp.Net Core轻松学习系列之配置文件
- ASP.NET Core 中使用配置
- 在 ASP.NET Core 中启用跨域请求(CORS)
- asp.net core系列 23 EF模型配置(概述, 类型和属性的包含与排除)
- ASP.NET Core轻松入门Bind读取配置文件到C#实例
- Asp.Net Core + Ocelot 网关搭建:路由简单配置
- ASP.NET Core中实现用户登录验证的最低配置示例代码
- ASP.NET Core的配置(3): 将配置绑定为对象[上篇]
- ASP.NET Core的配置(5):配置的同步[设计篇]
- 2.4配置的热更新「深入浅出ASP.NET Core系列」
- ASP.NET Core环境配置