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

ASP.NET Core WebAPI_解决跨域问题(前端后端)

说明

我的前端框架为Vue3

前后端跨域选其一即可

前端跨域

在项目的根目录找到vite.config.js文件,添加代码:

  server: {proxy: {'/api': {target: 'https://localhost:xxxx',changeOrigin: true,secure: false},},}

axios代码片段:

const req = axios.create({baseURL: '/api'
})const login = async () => {const resp = await req.post('/login/verify', loginData.value)respData.value = resp.data.message
}

 此时,请求实际上被代理为https://localhost:xxxx/api/login/verify,不会触发跨域问题

后端跨域

在项目的根目录找到Program.cs文件,

在 var app = builder.Build() 之前添加代码(注意事项已写在注释中):

// 跨域注册(于var app = builder.Build()之前)
builder.Services.AddCors(options =>
{   // CorsPolicy为跨域策略名(可选参数)options.AddPolicy("CorsPolicy", builder =>{builder.WithOrigins("http://localhost:5173")   // AllowAnyOrigin允许任何来源的跨域请求(.WithOrigins(url) 仅允许指定来源的跨域请求)// 注意: URL末端切勿加上"/".AllowAnyMethod()   // 允许任何HTTP方法.AllowAnyHeader()   // 允许任何Header.AllowCredentials();// 允许凭据(授权/身份验证)// 1/2/3为默认选项 4需要人为开启// 设置项不允许均为AllowAnyxxx()});
});

在 app.UseHttpsRedirection() 之前添加代码:

app.UseCors("CorsPolicy");

需要注意的是,此时axios中的代码片段需要稍作修改:

// .net开启CORS时, 需要完整路径
const req = axios.create({baseURL: 'https://localhost:7043/api'
})const login = async () => {const resp = await req.post('/login/verify', loginData.value)respData.value = resp.data.message
}
http://www.lryc.cn/news/292187.html

相关文章:

  • 保姆级的指针详解(超详细)
  • R-YOLO
  • Qt无边框窗口拖拽和阴影
  • ES6 Proxy详解
  • Prompt Learning 的几个重点paper
  • 中科大计网学习记录笔记(三):接入网和物理媒体
  • 设计模式:工厂方法模式
  • HTML 相关知识点记录
  • 系统架构设计师考试大纲2023
  • sqli.labs靶场(第18~22关)
  • 【tensorflow 版本 keras版本】
  • 嵌入式学习第十六天
  • Java过滤器拦截器的区别和实现
  • Android 12 系统开机动画
  • C++:异常体系
  • 民事二审案件庭审应如何准备?
  • WebRTC系列-H264视频帧组包(视频花屏问题)
  • Common Mistakes in German
  • Java基础数据结构之反射
  • 【实战系列----消息队列 数据缓存】rabbitmq 消息队列 搭建和应用
  • 【云原生kubernetes系列】---亲和与反亲和
  • 【极简】Pytorch中的register_buffer()
  • J-Link:STM32使用J-LINK烧录程序,其他MCU也通用
  • 从0到1入门C++编程——06 类和对象之多态、文件操作
  • elementUI实现selecttree自定义下拉框树形组件支持多选和搜索
  • 使用 Spring Boot 构建 Docker 镜像的简易指南
  • 「数据结构」3.ArrayList
  • H.264与H.265的主要差异
  • 【数据结构】 归并排序超详解
  • Debezium系列之:深入理解GTID全局事务标识,并记录一次数据库重启造成数据丢失的原因和解决方案