Asp.Net Core WebAPI入门整理(三)跨域处理
一、Core WebAPI中的跨域处理
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 WebAPI入门整理(四)参数获取
一.总结整理,本实例对应.Net Core 2.0版本 1.在.Net Core WebAPI 中对于参数的获取及自动赋值,沿用了Asp.Net MVC的有点,既可以单个指定多个参数,右可以指定Mo ...
- Asp.Net Core WebAPI入门整理(二)简单示例
一.Core WebAPI中的序列化 使用的是Newtonsoft.Json,自定义全局配置处理: // This method gets called by the runtime. Use thi ...
- Asp.Net Core WebAPI入门整理(一)
一.Asp.Net Core WebAPI 1.目前版本是v1.1 2.默认路由处理和Asp.Net WebAPI有些 区别了,现在使用的是控制器路由[Route("api/Menu&qu ...
- asp.net core webapi 服务端配置跨域
在前后端分离开发中服务端仅仅只为前端提供api接口,并且前后端往往单独部署,此时就会出现浏览器跨域问题.asp.net core提供了简单优雅的解决方案. 在startup文件的Configure添加 ...
- C# ASP.NET MVC/WebApi 或者 ASP.NET CORE 最简单高效的跨域设置
概述 前面写了一篇:<C# ASP.NET WebApi 跨域设置>的文章,主要针对 ASP.NET WebApi 项目. 今天遇到 ASP.NET MVC 项目也需要设置跨域,否则浏览器 ...
- asp.net core 2.0 api ajax跨域问题
API配置: services.AddCors(options => { options.AddPolicy("any", builder => { builder.W ...
- asp.net core webapi之跨域(Cors)访问
这里说的跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作 ...
- ASP.NET Core WebApi构建API接口服务实战演练
一.ASP.NET Core WebApi课程介绍 人生苦短,我用.NET Core!提到Api接口,一般会想到以前用到的WebService和WCF服务,这三个技术都是用来创建服务接口,只不过Web ...
- asp.net core WebAPI学习以及 发布(***入门学习)
A asp.net Core 系列[一]——创建Web应用 asp.net Core 系列[二]—— 使用 ASP.NET Core 和 VS2017 for Windows 创建 Web API a ...
随机推荐
- Spark记录-SparkSQL相关学习
$spark-sql --help 查看帮助命令 $设置任务个数,在这里修改为20个 spark-sql>SET spark.sql.shuffle.partitions=20; $选择数据 ...
- Hive记录-配置客户端可视化管理工具远程连接
配置客户端远程连接(方便可视化工具操作)-不需要在hive服务器上敲命令了 1.安装DBeaver工具:https://dbeaver.com/download/ 2.准备相关驱动文件(服务器上hiv ...
- vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询
vue使用element Transfer 穿梭框实现ajax请求数据和自定义查询 基于element Transfer http://element-cn.eleme.io/#/zh-CN/comp ...
- Java编程思想 学习笔记11
十一.持有对象 通常,程序总是根据运行时才知道的某些条件去创建新对象.在此之前,不会知道所需对象的数量,甚至不知道确切的类型. Java实用库还提供了一套相当完整的容器类来解决这个问题,其中基本的类 ...
- 【C++ STL】Set和Multiset
1.结构 set和multiset会根据特定的排序原则将元素排序.两者不同之处在于,multisets允许元素重复,而set不允许重复. 只要是assignable.copyable.comparab ...
- 集大软件工程15级个人作业Week1
集大软件工程15级个人作业Week1 孙志威 201521123077 博客园主页 码云地址 阅读参考材料,并回答下面几个问题 (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络 ...
- 使用jQuery实现返回顶部功能
<p id="back-to-top"><a href="#top"><span></span>返回顶部< ...
- BSGS算法及其扩展
bsgs算法: 我们在逆元里曾经讲到过如何用殴几里得求一个同余方程的整数解.而\(bsgs\)就是用来求一个指数同余方程的最小整数解的:也就是对于\(a^x\equiv b \mod p\) 我们可以 ...
- python(十四)新式类和旧式类
这里有个重要概念呢在下面那个链接 http://blog.csdn.net/zimou5581/article/details/53053775 http://www.cnblogs.com/btch ...
- Three.js基础探寻二——正交投影照相机
本篇主要介绍照相机中的正交投影照相机. 第一篇传送门:Three.js基础探寻一 1.照相机 图形学中的照相机定义了三维空间到二维屏幕的投影方式. 针对投影方式照相机分为正交投影照相机和透视投影照相机 ...