HTTP 响应标头 | 是否必含 | 值 | 解释 |
Access-Control-Allow-Origin | 是 | * 或 http://IP:Port | 允许跨域请求的地址,* 代表允许全部,若指定地址则仅支持填入一个 |
Access-Control-Allow-Headers | 否 | Content-Type | 当接口仅提供 Get 请求时,可省略;另外客户端添加的自定义请求头,需再次进行允许配置 |
Access-Control-Allow-Methods | 是 | POST, GET, OPTIONS, PUT, DELETE, UPDATE | 此处列出了全部常用的方法名,可根据需要可适当删除个别值 |
Access-Control-Allow-Credentials | 否 | 默认为 false,可配置为 true | 允许客户端携带验证信息,例如 cookie 之类的。为 true 时,不允许 Origin 设置为“*” |
public void ConfigureServices(IServiceCollection services) { // 堆代码 duidaima.com // 添加跨域策略 services.AddCors(options => { // 配置默认策略和中间件:options.AddDefaultPolicy(policy =>{policy.WithOrigins("");});app.UseCors(); // 将自动应用于所有控制器终结点 options.AddPolicy("CorsPolicyName0519", policy => { policy //.AllowAnyOrigin() // AllowAnyOrigin 允许任何源地址的访问 .WithOrigins("http://IP:Port") // 仅允许一个地址访问 //.WithOrigins(new string[]{"http://IP1:Port1","http://IP2:Port2","http://IP3:Port3"}) // 支持同时允许多个指定地址的访问 //.AllowAnyHeader() // 允许任何的Header头部标题 .WithHeaders("Account", "ClientType", "OrgId", "Token", "Department", "EntAuthVebr") // 自定义请求头 //.AllowAnyMethod() // 允许任何方法 .WithMethods(HttpMethods.Options, HttpMethods.Get, HttpMethods.Post, HttpMethods.Put, HttpMethods.Delete) // 允许的谓词方法 //.AllowCredentials() // 允许跨源请求发送凭据 允许时 Origin 不允许为“*” .SetPreflightMaxAge(TimeSpan.FromHours(24)); // 设置预检请求的最大缓存时间 }); }); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... app.UseCors("CorsPolicyName0519"); // 添加 CORS 中间件,允许跨域访问 // ... }跨域请求策略可以同时配置多个。
services.AddCors(options => { options.AddPolicy(name: MyAllowSpecificOrigins, policy => { policy .WithOrigins("https://*.example.com","https://*.example.net") // 等效于:new string[]{"地址1","地址2"} .SetIsOriginAllowedToAllowWildcardSubdomains(); }); });3、关于 设置允许的 HTTP 方法 WithMethods()
[Route("api/[controller]")] [ApiController] public class TodoItems2Controller : ControllerBase { // OPTIONS: api/TodoItems2/5 [HttpOptions("{id}")] public IActionResult PreflightRoute(int id) { return NoContent(); } // OPTIONS: api/TodoItems2 [HttpOptions] public IActionResult PreflightRoute() { return NoContent(); } }4、设置预检过期时间 SetPreflightMaxAge()
// 添加跨域策略 services.AddCors(options => { options.AddPolicy("CorsPolicyName007", policy => { policy .WithOrigins("http://127.0.0.1:7000" , "http://127.0.0.1:8000" ) .SetPreflightMaxAge(TimeSpan.FromHours(24)) // 设置预检请求的最大缓存时间 ; }); });
聚圣源蔬果公司起名起名机器混为一谈央行降息降准风流名将最新章节谷歌地球猪宝宝起名适合要什么字免费起名软件下载女的春天出生起名字楚辞夜瑾全文免费阅读八面莹澈性高的男孩起什么名字姚姓男孩起名字大全公司的起名软件波斯王子3下载二手房过户费用计算泰山北斗混仙公子凶猛属鼠的孩子起名2021宝宝起名起100分名字暗格里的秘密演员表店铺起名字测试打分的flash作品包装店起名查看起名结果已付款取名起名大全字典大全烤生蚝第三类终结者百度在线起名免费淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费