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 "1234";
        }

 客户端访问,带客户端凭据信息

复制代码
$.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 "1234";
        }
    }
复制代码

 

更多:

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

posted @   天马3798  阅读(2991)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2013-12-31 Excel操作 Microsoft.Office.Interop.Excel.dll的使用
2013-12-31 c#使用Microsoft Excel 12.0 object Libary导出的Excel文件office2003不能打开!!~~(分享)
2013-12-31 解决第三方DLL没有强签名
2013-12-31 WorkBook的SaveAs方法 2
2013-12-31 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法
2013-12-31 ExcelApplication 另存Excel的SaveAs函数
2013-12-31 让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件
点击右上角即可分享
微信分享提示