Asp.Net WebApi+Microsoft.AspNet.WebApi.Core 启用CORS跨域访问
WebApi中启用CORS跨域访问
1.安装 Nugget包Microsoft.AspNet.WebApi.Cors
This package contains the components to enable Cross-Origin Resource Sharing (CORS) in ASP.NET Web API.
此包包含启用跨域资源共享的组件(CORS)在ASP.NET Web API。
目前版本是5.2.3
依赖项:
Microsoft.AspNet.WebApi.Core (>= 5.2.2 && < 5.3.0)
Microsoft.AspNet.Cors (>= 5.2.2)

2.WebApiApplication中启用跨域功能,默认是不可用的
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//启用跨域
/*
* 注意,必须先启用跨域,然后,启用注册路由
*/
GlobalConfiguration.Configuration.EnableCors(); GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
3.[EnableCors]在Controller或Action配置跨域方案
//支持客户端凭据提交
[EnableCors("http://localhost:51421", "*", "*", SupportsCredentials = true)]
//[EnableCors("http://localhost:51421", "*", "*")]
// [EnableCors("*", "*", "*")]
public string GetOne()
{
return "";
}
客户端访问,带客户端凭据信息
$.ajax({
url: apiUrl.getCookie('getone'),
// url: apiUrl.getCookie('gettwo'),
data: { age: 11 },
xhrFields: {
withCredentials: true //支持附带详细信息
},
crossDomain: true,//请求偏向外域
success: function (data) {
alert(data);
}
});
4.在controller中,指定[EnableCors]对所有的action,都起作用,然而,还可以单独指定到某个action
[EnableCors("*", "*", "*")]
public class CookieOneController : ApiController
{
//支持客户端凭据提交
[EnableCors("http://localhost:51421", "*", "*", SupportsCredentials = true)]
//[EnableCors("http://localhost:51421", "*", "*")]
// [EnableCors("*", "*", "*")]
public string GetOne()
{
return CookieHelper.GetString("username");
}
[HttpGet]
[HttpPost]
public string GetTwo()
{
return "";
}
}
更多:
https://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-22
Asp.Net WebApi 启用CORS跨域访问指定多个域名
Cors 跨域Access-Control-Allow-Origin
资料地址:
http://www.cnblogs.com/artech/p/cors-4-asp-net-web-api-05.html
官方文档:
https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#enable-cors
Asp.Net WebApi+Microsoft.AspNet.WebApi.Core 启用CORS跨域访问的更多相关文章
- Asp.Net WebApi 启用CORS跨域访问指定多个域名
1.后台action指定 EnableCors指定可访问的域名多个,使用逗号隔开 //支持客户端凭据提交,指定多个域名,使用逗号隔开 [EnableCors("http://localhos ...
- .NET中CORS跨域访问WebApi
我这里只写基本用法以作记录,具体为什么看下面的文章: http://www.cnblogs.com/landeanfen/p/5177176.html http://www.cnblogs.com/m ...
- 使Asp.net WebApi支持JSONP和Cors跨域访问
1.服务端处理 同源策略(Same Origin Policy)的存在导致了“源”自A的脚本只能操作“同源”页面的DOM,“跨源”操作来源于B的页面将会被拒绝.同源策略以及跨域资源共享在大部分情况下针 ...
- ASP.NET Core SignalR CORS 跨域问题
将 SignalR 集成到 ASP.NET Core api 程序的时候,按照官方 DEMO 配置完成,本地访问没有问题,但是发布之后一直报跨域问题,本地是这样设置的: 原始代码: services. ...
- 把旧系统迁移到.Net Core 2.0 日记 (16) --Cors跨域访问
IE浏览器的Intranet局域网设置默认是可以跨域访问的.chrome就不可以. 这里说的跨域是指javascript代码不能跨域, 当然你在后端controller代码里用HttpClient.G ...
- .net core mvc全局设置跨域访问
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory ...
- webapi支持跨域访问
写在前面 在实际应用中,跨域请求还是比较常见的,如何上接口直接支持跨域的访问呢? demo 场景项目A有个接口用来获取用户列表,现在项目b也有个功能需要加载用户列表.这两个项目在两个域名下,至少端口好 ...
- asp.net (webapi) core 2.1 跨域配置
原文:asp.net (webapi) core 2.1 跨域配置 官方文档 ➡️ https://docs.microsoft.com/zh-cn/aspnet/core/security/cors ...
- vs2012安装Microsoft.AspNet.WebApi.WebHost
工具---库程序包管理器---程序包管理器控制台:输入下面命令: Install-Package Microsoft.AspNet.WebApi.WebHost
随机推荐
- Spring静态属性注入
今天遇到一个工具类,需要静态注入一个属性,方法如下: 第一步:属性的set和get方法不要加static package cn.com.chinalife.ebusiness.common.util; ...
- 安装.net framework 4.0失败,出现HRESULT 0xc8000222错误代码
安装了一上午的.net framework 4.0,各种失败,查了好多答案,各种不靠谱,最后终于找到答案了 和Windows Update有关系,给目录名重命名一下再次安装,即安装成功了! 方法: 1 ...
- git clone 远程分支
先初始化一个git 仓库 命令:git init git clone 相应的地址 这样就会形成一个.git 隐藏文件夹 一定要注意的,要进入到子文件夹去git checkout feature/0. ...
- IIS6添加5.3.27 /西部数据网站管理助理升级php
下载并安装IIS FastCGI 下载地址:http://www.iis.net/download/fastcgi. 选择 x86或者download x86,下载下来名称为 fcgisetup_1. ...
- Css3 javascript 写的分类
不兼容IE10以下的浏览器 <!DOCTYPE html> <html> <head> <meta charset=utf-> <title> ...
- Java泛型的基本应用
一.泛型概述 jdk1.5版本以后出现的新特性,用于解决安全问题,是一个安全机制. 好处: 1,将运行时期的问题ClassCastException转到了编译时期. 2,避免了强制转换的麻烦. 什么时 ...
- 生产环境搭建MySQL复制的教程(转)
[导读] 网络上有很多关于MySQL复制搭建的步骤和范例,以及手册上有一章完整的篇幅,讲述MySQL复制的原理.搭建步骤.优化等,但依然存在很多刚开始学习MySQL知识或者刚进入DBA行业的朋友咨询, ...
- 转:exit()与_exit()的区别
版权声明:本文为博主原创文章,未经博主允许不得转载. 从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构:exit 函数则在这些基础上做了 ...
- HTML5 + CSS3 + JavaScript
http://www.programmer.com.cn/14761/#more-14761 文/李晶 随着互联网产业的爆炸式增长,与之伴生的Web前端技术也在历经洗礼和蜕变.尤其是近几年随着移动终端 ...
- Keil C51 中的函数指针和再入函数
函数指针是C语言中几个难点之一.由于8051的C编译器的独特要求,函数指针和再入函数有更多的挑战需要克服.主要由于函数变量的传递.典型的(绝大部分8051芯片)函数变量通过堆栈的入栈和出栈命令来传递. ...