当前位置: 首页 > news >正文

ASP.NET网站开发之“跨域”

在 ASP.NET 网站开发中,跨域问题(CORS,Cross-Origin Resource Sharing)是由于浏览器的同源策略限制导致的 —— 当前端页面(如 http://localhost:3000)请求不同协议、域名、端口的后端接口(如 http://localhost:5000)时,浏览器会拦截请求并抛出跨域错误。以下是 ASP.NET (含 Framework 和 Core)中最常用、最规范的跨域解决方案,按优先级和实用性排序:

一、核心概念:先明确跨域的触发条件

跨域请求需同时满足以下 3 点(缺一不可):

  1. 协议不同(如 http vs https);
  2. 域名不同(如 localhost vs 127.0.0.1,a.com vs b.com);
  3. 端口不同(如 8080 vs 5000)。

浏览器会先发送 OPTIONS 预检请求(复杂请求,如 POST 带 JSON 数据、自定义请求头),验证后端是否允许跨域;简单请求(如 GET 无自定义头)直接发送,但仍受同源策略限制。

二、ASP.NET Core (推荐,.NET Core 2.0+)

ASP.NET Core 内置了 CORS 中间件,配置简单且灵活,是首选方案。

步骤 1:安装依赖(默认已包含,无需额外安装)

Microsoft.AspNetCore.Cors 是 Core 框架自带的,只需在 Startup.cs 或 Program.cs 中配置即可。

步骤 2:配置 CORS 策略(两种写法:Program.cs/ Startup.cs)

方式 1:.NET 6+ (Program.cs 顶级语句)
var builder = WebApplication.CreateBuilder(args);// 1. 添加 CORS 服务,并定义策略(PolicyName 自定义,如 "AllowAll" 或 "SpecificOrigins")
builder.Services.AddCors(options =>
{options.AddPolicy("AllowAll", policy =>{// 允许所有源(开发环境可用,生产环境不推荐)policy.AllowAnyOrigin().AllowAnyMethod() // 允许所有 HTTP 方法(GET/POST/PUT/DELETE 等).AllowAnyHeader(); // 允许所有请求头});// 生产环境推荐:仅允许指定源(精准授权)options.AddPolicy("SpecificOrigins", policy =>{policy.WithOrigins("http://localhost:3000", "https://your-frontend-domain.com") // 允许的前端域名(不带 /).AllowMethods("GET", "POST", "PUT") // 仅允许指定方法.AllowHeaders("Content-Type", "Authorization") // 仅允许指定请求头.AllowCredentials(); // 允许携带 Cookie(如需跨域传递身份凭证)});
});// 其他服务注册(如 AddControllers、AddDbContext 等)
builder.Services.AddControllers();var app = builder.Build();// 2. 启用 CORS 中间件(必须放在 UseRouting 之后、UseAuthorization 之前!)
app.UseCors("SpecificOrigins"); // 指定使用的策略名称// 其他中间件(如 UseRouting、UseAuthorization、Ma
http://www.dtcms.com/a/592454.html

相关文章:

  • 服饰品牌网站建设千川推广官网
  • Vue2/3面试题
  • C++ ODB ORM 完全指南:从入门到实战应用
  • Java-----集合
  • 金昌市网站建设vfp wordpress
  • 网站建设,从用户角度开始私人做网站
  • 哪个网站做婚礼邀请函好武进区城乡建设局网站
  • 网站开发成本报表新开传奇网站单职业
  • 网站设计与网页配色实例精讲微信登陆wordpress
  • 网站建设外贸开发软件用什么工具
  • 建设工程行业招工信息网站企业网站营销的优缺点及案例
  • 网站栏目策划如何推广自己的产品
  • 襄阳建设局网站快速排名优化推广价格
  • 手机软件制作网站平台dede自动生成网站地图
  • 漳州建设局网站首页单页关键字优化
  • 有网页源码 怎么做网站郑州外语网站建站优化
  • 宁波淘宝网站建设做电器推广的网站
  • 苏州做网站品牌公司wordpress 多主题
  • 怎么增加网站浏览量wordpress收不到
  • 建设网站费用吗怎样自己搭建网站
  • 网站双收录怎么做301跳转宁波做网站皆选蓉胜网络
  • 专门做红酒的网站海北高端网站建设哪家好
  • 定制开发响应式网站做聚类热图的网站
  • 搜索网站建设推广优化2021年网站有人分享吗
  • 网站分页效果做网站推广 seo的
  • 泰州建站价格WordPress文件归档
  • 水果网店网站建设策划书网站推广策划思路
  • 单页面网站推广网站空间管理站
  • 做网站的岗位好吗住房建设厅官方网站
  • 个人网站什么语言做注册网站会员需要填写信息