Asp.Net Core WebAPI入门整理(三)跨域处理
2017-05-30 16:33
706 查看
一、Core WebAPI中的跨域处理
1.在使用WebAPI项目的时候基本上都会用到跨域处理
2.Core WebAPI的项目中自带了跨域Cors的处理,不需要单独添加程序包

3.使用方法简单
二、使用实例
1.全局配置中启用跨域处理,命名为‘any’,任何都可以访问
2.在控制器或Action的方法注释上使用对应名称的 跨域规则,
[EnableCors("any")]
注:如果在控制器上指定,则控制器内 所有的Action都有对应的跨域限制。
三 、跨域时,Cookie的访问
1.后台通过HttpContext上下文可以直接操作Cookie
2.前台JQuery的ajax请求,需要携带withCredentials才会将cookie的值保存到客户端


更多:
Asp.Net Core WebAPI入门整理(二)简单示例
Asp.Net Core WebAPI入门整理(一)
Asp.Net Core中Json序列化处理整理
1.在使用WebAPI项目的时候基本上都会用到跨域处理
2.Core WebAPI的项目中自带了跨域Cors的处理,不需要单独添加程序包

3.使用方法简单
二、使用实例
1.全局配置中启用跨域处理,命名为‘any’,任何都可以访问
public void ConfigureServices(IServiceCollection services) { //配置跨域处理 services.AddCors(options => { options.AddPolicy("any", builder => { builder.AllowAnyOrigin() //允许任何来源的主机访问 .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials();//指定处理cookie }); }); }
2.在控制器或Action的方法注释上使用对应名称的 跨域规则,
[EnableCors("any")]
[Produces("application/json")] [Route("api/Menu")] [EnableCors("any")] //设置跨域处理的 代理 public class MenuController : Controller { }
注:如果在控制器上指定,则控制器内 所有的Action都有对应的跨域限制。
三 、跨域时,Cookie的访问
1.后台通过HttpContext上下文可以直接操作Cookie
[Produces("application/json")] [Route("api/CookieOne")] [EnableCors("any")] public class CookieOneController : Controller { //后台设置Cookie [HttpPut] public IActionResult Add() { ControllerContext.HttpContext.Response.Cookies.Append("name", "中文 ,张三丰"); return Ok(new { msg = "设置成功" }); } //后台获取Cookie,特别 说明对于基础类型的返回值,默认JQuery的ajax解析失败,最好返回IActionResult [HttpGet] public IActionResult Get() { string result = HttpContext.Request.Cookies["url"]; return Content(result); } }
2.前台JQuery的ajax请求,需要携带withCredentials才会将cookie的值保存到客户端
var example1 = new Vue({ el: '#example1', data: { name: '空', url: '空' } }); //1.后台添加cookie function addOne() { $.ajax({ url: urlHelper.getApi('cookieone'), type: 'put', xhrFields: { withCredentials:true //配置http跨域请求中携带cookie }, success: function (data) { console.info(data); //前台获取cookie var name = Cookies.get('name'); console.info(name); example1.name = name; //Vue中修改双向绑定可以通过Vue实例进行,不需要再次通知页面(和AngularJs不同) } }); } addOne(); //2.前台添加Cookie 后台获取 function getOne() { Cookies.set('url', 'http://www.gongjuji.net/'); $.ajax({ url: urlHelper.getApi('cookieone'), type: 'get', contentType: 'application/json', xhrFields: { withCredentials: true //配置http跨域请求中携带cookie }, success: function (data) { console.info(data); example1.url = data; } }); } getOne();


更多:
Asp.Net Core WebAPI入门整理(二)简单示例
Asp.Net Core WebAPI入门整理(一)
Asp.Net Core中Json序列化处理整理
相关文章推荐
- Asp.Net Core WebAPI入门整理(二)简单示例
- AspNetCoreApi 跨域处理
- asp.net core webapi之跨域(Cors)访问
- ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)
- .Net Core Webapi跨域处理
- ASP.NET Core WebApi 跨域配置 Cors
- ASP.NET Core Web APi获取原始请求内容
- asp.net core web api token验证和RestSharp访问
- 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署
- ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线
- ASP.NET Core Web API下事件驱动型架构的实现(二):事件处理器中对象生命周期的管理
- 支持多个版本的ASP.NET Core Web API
- asp.net core WebAPI实现CRUD
- 如何在ASP.NET Core Web API测试中使用Postman
- Asp.net core WebApi 使用Swagger生成帮助页实例
- 在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
- Asp.net Core WebApi 返回JSON自动驼峰格式化问题
- 在ASP.NET Core Web API上使用Swagger提供API文档
- ASP.NET CORE WEB API DEMO 02