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

沛县做网站php网站服务器怎么来

沛县做网站,php网站服务器怎么来,佛山专业网站设计,90设计网素材引言 本文介绍如何在开发环境下解决 Vite 前端(端口 3000)和后端(端口 80)之间的跨域问题: 在开发环境中,前端使用的 Vite 端口与后端端口不一致,会产生跨域错误提示: Access to X…

引言

本文介绍如何在开发环境下解决 Vite 前端(端口 3000)和后端(端口 80)之间的跨域问题:

在开发环境中,前端使用的 Vite 端口与后端端口不一致,会产生跨域错误提示:
Access to XMLHttpRequest at 'http://localhost/api/some-endpoint' from origin 'http://localhost:3000' 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.

解决方案

通过在 Vite 配置文件vite.config.tsvite.config.js中设置代理,将前端请求转发到后端,从而绕过跨域限制。

在这里插入图片描述

操作步骤:

  1. 打开 vite.config.tsvite.config.js,添加 server.proxy 属性。

  2. 配置代码示例:

    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'export default defineConfig({plugins: [vue()],server: {proxy: {'/api': {target: 'http://localhost:80', // 后端地址changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, '') // 移除路径中的 /api 前缀}}}
    })
    

在此配置中,所有发往 /api 的请求都会被代理到 http://localhost:80,并移除 /api 前缀(具体根据你的后端接口路径调整)。

  1. 修改前端请求的 URL:

    将之前的请求:

    axios.get('http://localhost/api/some-endpoint');
    

    改为:

    axios.get('/api/some-endpoint');
    

Vite 会自动将 /api/some-endpoint 请求代理到 http://localhost:80/some-endpoint,实现与后端的跨域通信。

请求流程

在此配置下,axios.get('/api/some-endpoint') 实际会被代理到后端的 http://localhost:80/some-endpoint

  1. 请求路径axios.get('/api/some-endpoint') 先发送到开发服务器(例如 localhost:3000)。
  2. 代理配置:Vite 检测到请求路径包含 /api,会将它代理到目标地址 http://localhost:80
  3. 路径重写rewrite 函数移除 /api 前缀。
  4. 最终地址:请求被代理转发到 http://localhost:80/some-endpoint

配置的意义

尽管直接请求 http://localhost:80/api/some-endpoint 是正确的后端地址,但 Vite 代理配置能避免跨域问题,简化代码,并更灵活地适配不同环境。代理配置的主要作用是:

  1. 解决同源策略限制:即使端口相同,浏览器也会限制跨域请求,而代理让前端和后端之间的请求看起来是同源的。
  2. 路径简化:设置代理后,代码只需写 /api 路径,方便维护。
  3. 更好的环境切换:代理配置可轻松适配开发、测试、生产等不同环境。

配置效果总结:

  • 避免跨域限制:请求通过代理后,看起来是发往开发服务器的,绕过跨域限制。
  • 代码简洁:代理后代码路径更简洁,便于管理。
  • 环境适配:代理配置使切换环境更方便,只需更改 target 地址。

长路径代理的配置示例

如果你的请求路径较长,并且希望代理后的地址保留原始路径结构,例如 http://localhost:80/csdn/test/bbq/api/some-endpoint,可以使用如下配置来实现(注意,80 是默认端口,可以省略不写):

// vite.config.ts
import { defineConfig } from 'vite';export default defineConfig({server: {proxy: {'/csdn': {// 后端服务器地址target: 'http://localhost:80/csdn/',changeOrigin: true,rewrite: path => path.replace(/^\/csdn/, '')}}}
});

在具体请求中:

// 示例请求代码
const postUrl = 'http://localhost:3000/csdn/test/bbq/api/some-endpoint';

说明

这里的思路是通过本地开发服务器(前端所在服务器)反向代理到后端所在服务器。你发出的请求指向 localhost:3000,Vite 代理会将其转发至 localhost:80 的相应路径。

因此,尽管请求地址使用了 3000 端口,但代理机制会帮你将其转换为原始的后端路径结构,从而实现数据交流。

问题

目前实际开发的时候我遇到一个问题就是后端可能无法获得正确的ip地址,当然啦,这是小问题。如果你还发现什么弊端可以留言给大家分享。

http://www.yayakq.cn/news/497622/

相关文章:

  • 餐饮设计网站网页设计实训报告总结1000字免费
  • 网站设计说明网站是怎么做新手引导
  • 巨量算数数据分析seo入门教程视频
  • 小学校园网站建设深圳市门户网站建设
  • 免费申请自己的网站网站 改版 建议
  • 深圳网站设计网站制作如何做明星的个人网站
  • 企业网站通常包含的栏目渭南建设网
  • 绵阳网站建设成都网站设计学校网站模板设计
  • 网站开发确认书新塘做网站公司
  • 高大上网站小程序商城图标素材
  • 人工智能公司网站建设附近设计公司有哪些
  • 网站建设的培训心得淘宝网上购物商城
  • 做巧克力的网站有没有做淘宝的网站
  • 优秀企业网站制作wordpress html5模板下载
  • 网站seo检测网站建设套餐有哪些内容
  • 楼梯 技术支持 东莞网站建设自适应单页网站模板
  • 做一家公司网站要注意哪些互联网行业前景如何
  • 太仓做网站的广西城乡住房建设厅网站
  • 网站建设的可行性分析报告上海中远建设 网站
  • 湘潭做网站价格 q磐石网络十大黄金软件app
  • 安防公司网站模板百度推广下载
  • 深圳 做网站 互联建设银行网站上的的研究报告
  • 广告视频素材网站凡科网站内容怎么做效果好
  • 查网站跳出率企业网站seo维护
  • 创手机网站你对网站第一印象
  • 卡片式网站模板东莞网站制作智能 乐云践新
  • 浙江建设网站是多少谷歌seo关键词优化
  • 建站模板大全大连建设网站制作
  • 怎样做视频直播网站本地推广平台有哪些
  • 房产网站内容建设规划企业管理软件有哪些