前端webpack、vite搭建的项目如何解决跨域

首先,跨域问题的控制台报错如下:

javascript 复制代码
Access to XMLHttpRequest at 'https://exsample.com/api/wx/haha/yaya' from origin 'http://localhost:5173' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

关键词 Access-Control-Allow-Origin

这样的报错就是跨域问题了。那么,在前端如何解决跨域呢?

可以配置反向代理服务器。

一、vite搭建的项目:

需在vite.config.ts文件中添加如下代码:

javascript 复制代码
 proxy: {
      '/api': {
        target: '', // 后台服务地址
        ws: true,
        changeOrigin: true, //是否跨域
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    },
复制代码
   要写在server的配置中 
javascript 复制代码
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path';
import postcsspxtoviewport from "postcss-px-to-viewport"

export default defineConfig({
  ...................
  server: {
    port: 5173,  //这是为了让vite搭建的项目也能在公网上运行
    host: "0.0.0.0",
    // 配置反向代理,解决跨域
    proxy: {
      '/api': {
        target: '', // 后台服务地址以及端口号
        ws: true,
        changeOrigin: true, //是否跨域
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    },
  },
  base: "/report-manager/"
.......................

})

二、webpack搭建的项目

需在config文件夹下面的webpackDevServer.config.ts(若原本项目中没有,就自己新建一个)文件中添加配置。

javascript 复制代码
 proxy: {
      '/api': {
          target: '', // 后台服务地址
          ws: true,
          changeOrigin: true, //是否跨域
          pathRewrite: { '^/api': '/' }
       }
    },
相关推荐
小码哥_常4 小时前
安卓开发秘籍:解锁10大性能优化秘诀
前端
try2find6 小时前
打印ascii码报错问题
java·linux·前端
郑州光合科技余经理6 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
冰暮流星6 小时前
javascript事件案例-全选框案例
服务器·前端·javascript
Csvn7 小时前
前端性能优化实战指南
前端
Moment7 小时前
2026 年,AI 全栈时代到了,前端简历别再只写前端技术了 🫠🫠🫠
前端·后端·面试
糯米团子7497 小时前
Web Worker
开发语言·前端·javascript
freewlt7 小时前
React Server Components 深度解析
前端·react.js·前端框架
wordbaby8 小时前
一次跨端 Loading 卡死复盘:把请求计数从 Axios 拦截器迁到 try/catch/finally
前端·axios
我命由我123458 小时前
JavaScript 开发 - 获取函数名称、获取函数参数数量、获取函数参数名称
开发语言·前端·javascript·css·html·html5·js