当前位置:首页 > Web开发 > 正文

可以添加不同的跨域策略 services.AddCors(options ={options.AddPolicy(随便起

2024-03-31 Web开发

标签:

解决dotnet-Angular的跨域(cors)问题 前言

之前学了点 Angular ,筹算用 dotnet core 做后端,之前没接触过这方面的对象,理所固然的遇到了跨域问题,之后也解决了,所以在此做个记录

碰到的问题

在使用 dotnet cli 生成的 angular 模板中

技术图片

概略有一段代码是这样写的 (如果 3.1 后面的版本没窜改的话)

angulardotnet 同时启动,也必需同时结束

这个时候两个项目运行在同一个"域"下,概略是 localhost:5000 这种的

这样并未便利调试,dotnet 部分需要窜改的时候,angular 也需要停失

所以 dotnet 相关文档 给出了一个解决方案

技术图片

虽然便利了开发,但是之后概略就会呈现一些跨域访谒掉败的问题了(横竖不知怎么的,我就碰到这问题了)

如何解决

主要改削 startup 中的代码

ConfigureServices 中添加以下代码

services.AddCors(options => { options.AddPolicy("随便起个名字", builder => builder.AllowAnyOrigin() .AllowAnyHeader().AllowAnyMethod()); });

然后在 Configure 中添加

app.UseCors("上面随便起的阿谁名字");

之后概略就可以了

如果有差此外需求,可以添加差此外跨域计谋

services.AddCors(options => { options.AddPolicy("随便起个名字", builder => builder.AllowAnyOrigin() .AllowAnyHeader().AllowAnyMethod()) options.AddPolicy("随便起个名字#2", builder => builder.AllowAnyMethod()); });

然后在使用的时候本身选择就好了

增补

当使用 AllowAnyOrigin 的时候,允许所有域,如果但愿能够指定域,可以使用 WithOrigins

services.AddCors(options => { options.AddPolicy("angular", builder => builder.WithOrigins(":4200",":8080") .AllowAnyHeader().AllowAnyMethod()); });

由于angular默认用4200端口

写成这样概略就好了

解决dotnet-Angular的跨域(cors)问题

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30780.html