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

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.kler.cn/a/228867.html

相关文章:

  • Web前端第一次作业
  • 设计模式-单例模式
  • SiamCAR(2019CVPR):用于视觉跟踪的Siamese全卷积分类和回归网络
  • CAPL数据库操作
  • vue 学习笔记 - 创建第一个项目 idea
  • 鲍厚霖:引领AI广告创新,搭建中美合作桥梁
  • docker 简单项目
  • SSH免密切换服务器案例-ssh协议(公钥和私钥)
  • 【C语言】static关键字的使用
  • 【蓝桥杯选拔赛真题63】python小马过河 第十五届青少年组蓝桥杯python 选拔赛比赛真题解析
  • CSS 闪电按钮效果
  • AI新宠Arc浏览器真可以取代Chrome吗?
  • [C语言] 指针详解(1)
  • TCP如何保证传输可靠性?
  • #Z1890. 裁枝剪叶
  • 【Eclipse平台】1Eclipse平台总体概览
  • 那些知名的IT证书 之 AWS篇
  • 【QT+QGIS跨平台编译】之二十四:【GeoTIFF+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • js中this对象的理解(深度解析)
  • 智能优化算法 | Matlab实现合作优化算法(CSA)(内含完整源码)
  • 【如何学习CAN总线测试】——UDS诊断自动化测试(含CAPL源码)
  • 【Elasticsearch】从入门到精通
  • LLM应用开发与落地:使用gradio十分钟搭建聊天UI
  • AI嵌入式K210项目(27)-条形码识别
  • 构建高效直播美颜系统:美颜SDK集成与性能优化指南
  • js中原始类型和对象引用